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

相关内容

热门资讯

程序员教你!aapoker辅助... 自定义hhpoker视频巡查真的假的系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专...
盘点十款!购买wepoker模... 这是一款非常优秀的aapoker如何设置胜率 ia辅助检测软件,能够让你了解到aapoker如何设置...
实测揭晓!福建大菠萝万能辅助器... 1、实测揭晓!福建大菠萝万能辅助器,werplan怎么透视,新2025教程(有挂软件)。2、福建大菠...
最新技巧!wepoker私人局... 最新技巧!wepoker私人局俱乐部,wepoker怎么提高运气,细节揭秘(有挂方法)科技教程也叫必...
盘点一款!hhpoker有辅助... 盘点一款!hhpoker有辅助吗,德普辅助软件,辅助教程(有挂辅助)1、许多玩家不知道hhpoker...
揭秘攻略!hhpoker有辅助... 揭秘攻略!hhpoker有辅助吗,德普辅助软件,攻略教程(有挂方法);玩家必备必赢加哟《136704...
发现一款!hhpoker德州挂... 这是一款非常优秀的hhpoker德州挂真的有吗 ia辅助检测软件,能够让你了解到hhpoker德州挂...
攻略讲解!wepoker正确养... 攻略讲解!wepoker正确养号方法,黑侠破解wepoker,安装教程(有挂神器);人气非常高,ai...
最新技巧!wepoker模拟器... 最新技巧!wepoker模拟器哪个,约局吧如何查看是否有挂,透明教程(有挂攻略);科技安装教程;13...
今日公布!hhpoker是正品... 今日公布!hhpoker是正品吗,红龙poker辅助工具,教你攻略(有挂技巧)科技教程也叫必备教程,...