首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoMoq具有特定构造函数的抽象类

AutoMoq具有特定构造函数的抽象类
EN

Stack Overflow用户
提问于 2017-03-28 20:49:55
回答 1查看 1.3K关注 0票数 1

是否有一种方法来设置AutoFixture.AutoMoq,以便在模拟抽象类时使用特定的构造函数?

我需要测试在抽象类中完成的实现。但是,我确实需要使用一个特定的构造函数。

代码语言:javascript
复制
public abstract class A
{
    public A(IQueryable q) // I need to use this
    { /*...*/ }
}

致以敬意,

编辑:

我试图使用类似于下面的东西,但仍然不起作用。这个类是抽象的,所以我需要模拟它,但是我需要一个非常具体的构造函数。

如何告诉AutoMoq,当嘲笑A时,请不要使用MockConstructorQuery或GreedyMockConstructorQuery。只需使用QueryableParamConstructorQuery。

fixture.Customize(新ConstructorCustomization(A)、新QueryableParamConstructorQuery());

EN

回答 1

Stack Overflow用户

发布于 2017-03-29 05:32:41

如果需要特定的构造函数,则可以在创建测试双时传递参数列表:

代码语言:javascript
复制
var q = fixture.Create<IQueryable>();
var a = new Mock<A>(q).Object;

如果需要更改AutoFixture的行为以始终使用此特定构造函数,则可以执行如下操作:

代码语言:javascript
复制
fixture.Register(q => new Mock<A>(q));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43079677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档