2012-06-08 52 views
3

我伪造一个IDbConnection,我想伪造QueryOne<T>()(一个Dapper扩展名)的电话,但我这样做的时候得到了NullReferenceException如何使用FakeItEasy伪造一个通用的方法调用?

Here's我的代码:

IDbConnection myConnection = A.Fake<IDbConnection>(); 


A.CallTo(() => myConnection.QueryOne<MyDto>(A<string>.Ignored, <IDbConnection>.Ignored, A<IDbTransaction>.Ignored)) 
.Returns(new MyDto()); 

是不是有可能在嘲笑一个FakeItEasy泛型方法调用或为什么我得到异常?

在此先感谢...

基督教

回答

5

因为小巧玲珑的使用扩展的方法来提供其功能和扩展以来方法只是花哨的静态方法,我不认为你可以得到这个上班。从我读过的内容(见question)FakeItEasy不能拦截静态方法。

+0

事实上,扩展在单元测试中表现不佳。我的建议是,使用一个界面来模拟你制作的短小精灵的调用,并根据这些界面进行编程,使你的单元测试更容易编写。 –

相关问题