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()和其他方法。

相关内容

热门资讯

科技通报!wepokerplu... 科技通报!wepokerplus开挂,wepoker免费透视脚本,竟然真的有挂(有挂方式)1、wep...
实操分享!werplan怎么作... 实操分享!werplan怎么作弊,wepoker破解是真的还是假的,竟然是真的有挂(有挂存在)1、辅...
热门推荐!拱趴大菠萝机器人,w... 热门推荐!拱趴大菠萝机器人,we-poker辅助软件教程,确实真的有挂(真是有挂)1、这是跨平台的轻...
推荐一款!wepoker插件下... 推荐一款!wepoker插件下载,pokemmo辅助工具,其实有挂(有挂攻略)暗藏猫腻,小编详细说明...
揭秘!wepoker插件程序激... 揭秘!wepoker插件程序激活码,德州hhpoker是真的吗,本来真的是有挂(有挂详情)1、下载好...
科普常识!sohoo开挂辅助,... 科普常识!sohoo开挂辅助,aapoker ai插件,一直存在有挂(有挂分析)1、让任何用户在无需...
揭秘一下!hhpoker免费透... 揭秘一下!hhpoker免费透视脚本,有没有人wepoker,都是是真的有挂(有挂攻略)是不是有人用...
重大消息!aapoker脚本怎... 重大消息!aapoker脚本怎么用,wepoker私人局规律,切实真的是有挂(有挂秘笈)1、透视辅助...
程序员教你!哈糖大菠萝攻略,w... 程序员教你!哈糖大菠萝攻略,wepoker底牌透视,其实是真的有挂(讲解有挂)小薇(辅助器软件下载)...
记者发布!如何判断wpk辅助软... 记者发布!如何判断wpk辅助软件的真假,pokemmo脚本手机版,果然真的是有挂(有挂方针)小薇(辅...