Autofixture.NSubstitutecheckreceivedcallswithoutfreezing
创始人
2024-11-12 13:30:23
0次

Autofixture和NSubstitute是两个非常流行的测试框架,它们可以帮助我们开发更稳健和高质量的代码。在使用Autofixture和NSubstitute进行测试时,我们经常需要验证被测方法是否正确地调用了一些依赖的方法或接口。

当我们使用Autofixture和NSubstitute进行测试时,有时会发现在验证被测方法的调用时会出现问题。这是因为Autofixture默认会冻结依赖的方法或接口,导致无法检查它们被正确调用。为了解决这个问题,我们可以使用AutoConfiguredNSubstituteCustomization类来取消依赖的冻结。

以下是示例代码:

// 安装AutoFixture.AutoNSubstitute和AutoFixture.Xunit2包

public interface IDependency
{
    string GetMessage();
}

public class MyClass
{
    private readonly IDependency _dependency;

    public MyClass(IDependency dependency)
    {
        _dependency = dependency;
    }

    public void MyMethod()
    {
        // 调用IDependency接口
        _dependency.GetMessage();
    }
}

public class MyTestClass
{
    [Fact]
    public void TestMethod()
    {
        // 取消IDependency接口的冻结
        var fixture = new Fixture().Customize(new AutoConfiguredNSubstituteCustomization { ConfigureMembers = true });

        // 创建IDependency的Substitute实例
        var dependencyMock = fixture.Create();

        // 创建MyClass的实例,并将IDependency的Substitute实例注入其构造函数
        var myClass = new MyClass(dependencyMock);

        // 调用被测方法
        myClass.MyMethod();

        // 验证IDependency的GetMessage方法是否被正确调用
        dependencyMock.Received(1).GetMessage();
    }
}

相关内容

热门资讯

玩家必看科普透视器工具!蟾宫多... 玩家必看科普透视器工具!蟾宫多功能透视器工具,蟾宫其实有透视器工具蟾宫辅助器是一种具有地方特色的麻将...
最新通报开挂方法!澳门永利集团... 最新通报开挂方法!澳门永利集团多功能开挂方法,澳门永利集团确实存在有开挂方法1、这是跨平台的澳门永利...
专业讨论透视器攻略!悠乐汇多功... 专业讨论透视器攻略!悠乐汇多功能透视器攻略,悠乐汇竟然存在有透视器攻略运悠乐汇辅助工具,进入游戏界面...
记者爆料透视器技巧!无锡麻将多... 记者爆料透视器技巧!无锡麻将多功能透视器技巧,无锡麻将都是有透视器技巧1、超多福利:超高返利,海量正...
重大通报透视挂方法!三鑫联盟多... 重大通报透视挂方法!三鑫联盟多功能透视挂方法,三鑫联盟一贯真的有透视挂方法1、操作简单,无需三鑫联盟...
玩家必看教程辅助器技巧!掌上约... 玩家必看教程辅助器技巧!掌上约牌多功能辅助器技巧,掌上约牌都是真的有辅助器技巧1)掌上约牌辅助插件:...
重大通报外挂方法!中至山西麻将... 重大通报外挂方法!中至山西麻将多功能外挂方法,中至山西麻将本来存在有外挂方法1、中至山西麻将免费脚本...
重要通知透视挂app!丹东约战... 重要通知透视挂app!丹东约战麻将多功能透视挂app,丹东约战麻将好像真的有透视挂app1、丹东约战...
今日公布外挂插件!亲邻麻将多功... 今日公布外挂插件!亲邻麻将多功能外挂插件,亲邻麻将原来是真的有外挂插件1、该软件可以轻松地帮助玩家将...
揭秘外挂教程!中至余干麻将多功... 揭秘外挂教程!中至余干麻将多功能外挂教程,中至余干麻将果然真的是有外挂教程1、用户打开应用后不用登录...