当前位置:  开发笔记 > 编程语言 > 正文

如何使AutoMoqCustomization使用Strict MockBehavior?

如何解决《如何使AutoMoqCustomization使用StrictMockBehavior?》经验,为你挑选了0个好方法。

将AutoFixture与AutoFixture.AutoMoq包一起使用时,我有时会发现没有配置为正确测试他们要测试的东西的测试,但由于默认(松散)模拟行为,问题从未被发现:

public interface IService
{
    bool IsSomethingTrue(int id);
}

void Main()
{
    var fixture = new Fixture()
        .Customize(new AutoMoqCustomization());
    var service = fixture.Freeze>();
    Console.WriteLine(service.Object.IsSomethingTrue(1)); // false
}

我想让Mocks用严格的行为创建,所以我们被迫调用Setup()我们期望被调用的方法.我可以为每个单独的模拟这样做:

fixture.Customize>(c => c.FromFactory(() => new Mock(MockBehavior.Strict)));

但是在梳理了AutoMoqCustomization()的源代码以及各种ISpecimenBuilder其他实现之后,我很遗憾只能让所有的M​​ocks用严格的行为进行初始化.该框架看起来非常灵活和可扩展,所以我确信有一种简单的方法可以做到这一点 - 我无法弄清楚如何做到这一点.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有