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();
    }
}

相关内容

热门资讯

最终"aapoker... 最终"aapoker辅助软件合法吗"uupoker透视(好像是有辅助下载)-哔哩哔哩1.aapoke...
透视科普"wepok... 透视科普"wepoker透视脚本免费使用视频"切实真的有辅助器(哔哩哔哩)1、完成wepoker透视...
透视解迷"wepok... 透视解迷"wepokerplus外开挂"真是真的有辅助技巧(哔哩哔哩)1、让任何用户在无需wepok...
透视规律"拱趴大菠萝... 透视规律"拱趴大菠萝万能挂"pokemmo手机辅助软件(切实真的有辅助安装)-哔哩哔哩1、超多福利:...
透视总结"德普软件&... 透视总结"德普软件"真是真的是有辅助教程(哔哩哔哩)1、德普软件公共底牌简单,德普软件透视插件操作,...
透视脚本"破解辅助插... 透视脚本"破解辅助插件wepoker"wepoker怎么开辅助(一直真的是有辅助神器)-哔哩哔哩1、...
透视解迷"wepok... 透视解迷"wepoker私人局辅助"切实是真的辅助方法(哔哩哔哩)1、打开软件启动之后找到中间准星的...
有消息称"wepok... 有消息称"wepoker免费钻石"德州局透视脚本(确实存在有辅助下载)-哔哩哔哩1、下载好德州局透视...
透视揭幕"wepok... 透视揭幕"wepoker买钻石有用吗"切实有辅助神器(哔哩哔哩)1、超多福利:超高返利,海量正版游戏...
据通报"wepoke... 据通报"wepoker的辅助器"德州hhpoker脚本(本来是真的辅助app)-哔哩哔哩1、进入游戏...