Generics 如何使用FakeiTasy伪造泛型方法调用?

Generics 如何使用FakeiTasy伪造泛型方法调用?,generics,dapper,fakeiteasy,Generics,Dapper,Fakeiteasy,我正在伪造一个IDbConnection,我想伪造对QueryOne()(一个Dapper扩展名)的调用,但这样做时我得到了一个NullReferenceException 这是我的代码: IDbConnection myConnection = A.Fake<IDbConnection>(); A.CallTo(() => myConnection.QueryOne<MyDto>(A<string>.Ignored, <IDbConnect

我正在伪造一个
IDbConnection
,我想伪造对
QueryOne()
(一个
Dapper
扩展名)的调用,但这样做时我得到了一个
NullReferenceException

这是我的代码:

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


A.CallTo(() => myConnection.QueryOne<MyDto>(A<string>.Ignored,  <IDbConnection>.Ignored, A<IDbTransaction>.Ignored))
.Returns(new MyDto());
IDbConnection myConnection=A.Fake();
A.CallTo(()=>myConnection.QueryOne(A.Ignored、.Ignored、A.Ignored))
.返回(新的MyDto());
难道不可能在
FakeItEasy
中模拟泛型方法调用吗?或者为什么会出现异常

先谢谢你


Christian

由于Dapper使用扩展方法来提供其功能,而且扩展方法只是花哨的静态方法,因此我认为您无法实现这一点。从我所读到的(见此)Fakeitesy无法拦截静态方法。

事实上,扩展不能很好地处理单元测试。我的建议是,使用一个界面来模仿您所做的简洁调用,并针对这些界面编程,从而使您的单元测试更易于编写。