首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用FakeItEasy设置多个泛型函数的返回值?

如何用FakeItEasy设置多个泛型函数的返回值?
EN

Stack Overflow用户
提问于 2016-04-11 11:24:31
回答 2查看 368关注 0票数 3

我正在为通过FakeItEasy和NHibernate与数据库对话的小任务编写单元测试。我的测试用例还包括在数据库中找不到给定对象的场景,因此我希望模拟查询返回null

现在,我通过使用以下调用成功地实现了这一点:

代码语言:javascript
运行
复制
    var _session = _fixture.Freeze<ISession>();
    A.CallTo(_session).WithReturnType<Foo>().Returns(null);
    A.CallTo(_session).WithReturnType<Bar>().Returns(null);
    // ~10 more of these with just different types defined

但我想知道是否有一种方法将其设置为默认行为--这样所有对带有泛型参数的_session的调用都会默认返回null

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-11 13:11:06

不,我不认为像你这样的is.Looks现在必须依次配置每种类型。考虑一下把它作为一种增强

更新我看到您创建了第648期来跟踪这个。谢谢!

票数 3
EN

Stack Overflow用户

发布于 2016-04-11 13:17:16

这是AutoFixture和FakeItEasy在功能上重叠的一个领域。FakeItEasy内置了对创建要在测试中使用的虚拟对象的支持,AutoFixture也一样。两者的主要区别在于,FakeItEasy没有给这些对象指定测试值,而AutoFixture只提供对大多数用例足够好的合理缺省值。

当AutoFixture必须为接口或抽象类提供实例时,它只是将创建委托给配置好的模拟库,在本例中是FakeItEasy。这意味着,如果您想改变创建假对象的方式,您需要配置FakeItEasy,而不是AutoFixture。

不幸的是,作为@BlairConrad 指出,FakeItEasy目前没有为特定的假对象提供禁用虚拟创建的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36547346

复制
相关文章

相似问题

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