Принудительно использовать автоматическую фиксацию для передачи аргумента конкретному конструктору

Я должен использовать определенный конструктор с автоматической настройкой приспособления. Логика приложения требует изменения единицы измерения температуры через конструктор. В противном случае значения температуры будут преобразованы, и я не могу определить минимальную температуру. Можно ли изменить используемый параметр конструктора?

Обновить

Кажется, это обходной путь для меня:

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 ответов

Другие вопросы по тегам