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

相关内容

热门资讯

查到实测辅助!光明辅助器,we... 查到实测辅助!光明辅助器,wepoker智能辅助插件,2025教程(有挂神器)是一款可以让一直输的玩...
9分钟了解!开心泉州小程序工具... 您好,开心泉州小程序工具这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家...
玩家必看分享!边锋嘉兴麻将辅助... 玩家必看分享!边锋嘉兴麻将辅助器,菠萝德州透视脚本,wepoke教程(有挂技巧);1、让任何用户在无...
实测揭晓!情怀手机麻将辅助器,... 实测揭晓!情怀手机麻将辅助器,wepoker私人局辅助挂,曝光教程(有挂教学);1、点击下载安装,情...
玩家必备攻略!奇迹掌趣辅助,w... 玩家必备攻略!奇迹掌趣辅助,wpk可以作弊吗,安装教程(有挂猫腻);1、很好的奇迹掌趣辅助工具软件,...
技术分享!蛮王大厅辅助,德州之... 《技术分享!蛮王大厅辅助,德州之星扫描器,扑克教程(有挂实锤)》 蛮王大厅辅助软件透明挂更新公告新增...
一分钟了解!胡乐辅助脚本是真的... 一分钟了解!胡乐辅助脚本是真的假的,wpk有作弊吗,微扑克教程(有挂头条);胡乐辅助脚本是真的假的简...
盘点一款!创思维激k有辅助器吗... 《盘点一款!创思维激k有辅助器吗,poker红龙辅助,新2025教程(确实有挂)》 创思维激k有辅助...
一分钟教你!潮汕汇软件辅助,w... 一分钟教你!潮汕汇软件辅助,wpk透视辅助,AI教程(真实有挂);1、让任何用户在无需AI插件第三方...
记者揭秘!传送屋软件辅助,hh... 记者揭秘!传送屋软件辅助,hhpoker辅助挂下载,揭秘攻略(的确有挂)是一款可以让一直输的玩家,快...