AutoFixture的Without()方法在只有一个构造函数且所有参数都需要输入时无法正常使用?
创始人
2024-11-12 13:30:33
0

可以使用AutoFixture的Customize()方法,为该类型单独定制Fixture,从而解决该问题。具体代码示例如下:

public class TestClass { public string Name { get; set; } public int Age { get; set; }

public TestClass(string name, int age)
{
    Name = name;
    Age = age;
}

}

[TestMethod] public void TestCustomizedAutoFixture() { var fixture = new Fixture().Customize(new MultipleParameterConstructorCustomization()); var testClass = fixture.Create();

Assert.IsNull(testClass.Name);
Assert.AreEqual(0, testClass.Age);

}

public class MultipleParameterConstructorCustomization : ICustomization { public void Customize(IFixture fixture) { fixture.Customizations.Add(new MultipleParameterConstructorSpecimenBuilder()); } }

public class MultipleParameterConstructorSpecimenBuilder : ISpecimenBuilder { public object Create(object request, ISpecimenContext context) { var type = request as Type; if (type == null || type != typeof(T)) { return new NoSpecimen(); }

    var ctors = type.GetConstructors().Where(x => x.GetParameters().Count() > 1);
    if (!ctors.Any())
    {
        return new NoSpecimen();
    }

    return Activator.CreateInstance(type, ctors.First().GetParameters().Select(x => context.Resolve(x.ParameterType)).ToArray());
}

}

其中,MultipleParameterConstructorCustomization类为自定义类,用于定制fixture,重载ICustomization接口的Customize方法。MultipleParameterConstructorSpecimenBuilder类为自定义类,用于指定实例创建方式,重载ISpecimenBuilder接口的Create方法。对于只有一个构造函数但所有参数都需要输入的类型,可以通过这种方式自定义AutoFixture,来实现正常使用Without()和其他方法。

相关内容

热门资讯

第六分钟详情!崇阳斗棋辅助脚本... 第六分钟详情!崇阳斗棋辅助脚本视频,花花生活圈脚本(切实有挂)-哔哩哔哩1、崇阳斗棋辅助脚本视频透视...
9分钟曝光!对战互娱有辅助吗,... 9分钟曝光!对战互娱有辅助吗,广西老友玩插件(一直有挂)-哔哩哔哩1、进入到对战互娱有辅助吗黑科技之...
第六分钟必备!先锋大厅辅助,皮... 第六分钟必备!先锋大厅辅助,皮皮跑子胡子修改器(真是存在有挂)-哔哩哔哩1、每一步都需要思考,不同水...
第八分钟揭幕!多乐够级脚本,兴... 第八分钟揭幕!多乐够级脚本,兴动休闲辅助(其实是有挂)-哔哩哔哩1、进入到兴动休闲辅助黑科技之后,能...
第七分钟解迷!腾威互娱破解辅助... 第七分钟解迷!腾威互娱破解辅助工具,起点休闲辅助(切实是真的挂)-哔哩哔哩1、完成腾威互娱破解辅助工...
六分钟揭幕!新星游挂多少钱,新... 六分钟揭幕!新星游挂多少钱,新珊瑚大厅辅助(都是是真的挂)-哔哩哔哩1、新星游挂多少钱ai机器人多个...
7分钟详情!心悦游戏万能透视辅... 7分钟详情!心悦游戏万能透视辅助器免费,四川途游破解安装包(切实有挂)-哔哩哔哩1、心悦游戏万能透视...
七分钟详细!哈局十三张通用辅助... 七分钟详细!哈局十三张通用辅助,三哥玩辅助器(原来是有挂)-哔哩哔哩1、哈局十三张通用辅助系统规律教...
4分钟专业!大巴杭州辅助,约战... 4分钟专业!大巴杭州辅助,约战平台辅助(好像真的有挂)-哔哩哔哩约战平台辅助辅助器中分为三种模型:约...
三分钟解谜!开心泉州免费辅助器... 三分钟解谜!开心泉州免费辅助器,潮汕汇app辅助(其实是真的挂)-哔哩哔哩1、玩家可以在开心泉州免费...