是否有一种方法来设置AutoFixture.AutoMoq,以便在模拟抽象类时使用特定的构造函数?
我需要测试在抽象类中完成的实现。但是,我确实需要使用一个特定的构造函数。
public abstract class A
{
public A(IQueryable q) // I need to use this
{ /*...*/ }
}致以敬意,
编辑:
我试图使用类似于下面的东西,但仍然不起作用。这个类是抽象的,所以我需要模拟它,但是我需要一个非常具体的构造函数。
如何告诉AutoMoq,当嘲笑A时,请不要使用MockConstructorQuery或GreedyMockConstructorQuery。只需使用QueryableParamConstructorQuery。
fixture.Customize(新ConstructorCustomization(A)、新QueryableParamConstructorQuery());
发布于 2017-03-29 05:32:41
如果需要特定的构造函数,则可以在创建测试双时传递参数列表:
var q = fixture.Create<IQueryable>();
var a = new Mock<A>(q).Object;如果需要更改AutoFixture的行为以始终使用此特定构造函数,则可以执行如下操作:
fixture.Register(q => new Mock<A>(q));https://stackoverflow.com/questions/43079677
复制相似问题