В настройках моего теста NUnit я создаю настройки AutoFixture, где мне нужны предопределенные значения для моих объектов.Однако это просто значения по умолчанию - некоторые тесты должны как-то переопределять эти значения по умолчанию.Вот как я могу добавить настройку:
fixture.Customizations.Add(new FilteringSpecimenBuilder(new FixedBuilder(value),
new ParameterSpecification(valueType, propertyName)));
Если я просто добавлю новую настройку в тесте, эта настройка фактически не будет применена, потому что она ниже в графике.
Поэтому я подумал, что смогу сделать remove
настройку, которая соответствует сигнатуре FilteringSpecimenBuilder, которую я создал ранее, но, похоже, это не сработает, если это не фактический экземпляр FilteringSpecimenBuilder, который я создал в программе установки.И чтобы это работало, мне нужно было сохранить на потом и каталогизировать все экземпляры, которые я создал в программе установки, что кажется избыточным, поскольку они уже являются частью графика Fixture.
Затем я попыталсячто-то вроде этого, где «имя» - это фактическое имя переменной, которую я пытаюсь удалить, но очевидно, что ссылка на свойства TargetType и TargetName недопустима, поскольку они устарели (а сообщение об ошибке не объясняет, что заменаis):
fixture
.Customizations
.OfType<FilteringSpecimenBuilder>()
.Where(x => x.Specification is ParameterSpecification)
.Where(x=>(((ParameterSpecification)x.Specification).TargetName == "name"))
.ToList()
.ForEach(c => fixture.Customizations.Remove(c));
Кто-нибудь знает способ замены настройки или удаления существующей?