强制自动混合将参数传递给特定的构造函数

时间:2016-11-15 18:49:33

标签: autofixture

我必须使用specific constructor进行自动夹具定制。 应用程序逻辑需要通过构造函数更改温度单位。否则温度值将被转换,我无法确定最低温度。是否可以修改使用的构造函数参数?

更新

这对我来说似乎是一个解决方法:

var tempUnit = new Fixture().Create<TemperatureUnit>();
var temperatureFixture = new Fixture();
//... 
temperatureFixture.Customizations.Add(new RandomNumericSequenceGenerator(Convert.ToInt64(GetMinTemperatureForUnit(tempUnit)), long.MaxValue));   

//workaround to force autofixture to create weather with unit
weatherFixture.Register<TemperatureUnit>(() => tempUnit);
weatherFixture.Customize<Weather>(weather => weather.FromFactory(new MethodInvoker(new GreedyConstructorQuery()))
            .With(x => x.Temperature, temperatureFixture.Create<double>())
            .Without(x => x.TempUnit)

0 个答案:

没有答案