я определил ISpecimenBuilder для моих моделей и использовать его так:Как я могу добавить общий постобработки применяется после настройки
new Fixture().Customize(new ModelCustomization());
Я хочу, чтобы использовать его в большинстве моих тестов относительно модели. Я также хочу применить некоторую форму пост-обработки в одном из моих тестовых классов. В частности, я хочу заполнить свойство CompanyHistory
всего созданного Offers
. Такое ощущение, что это можно сделать так:
fixture.Build<Offer>()
.With(o => o.CompanyHistory, _previouslyCreatedCompanyHistory)
.Create();
Но Build<T>
отключает все настройки и мне нужны.
Могу ли я сделать что-то подобное?
fixture.Build<Offer>()
.WithCustomization(new ModelCustomization()) // there is no such method, but i'd like it to be
.With(o => o.CompanyHistory, _previouslyCreatedCompanyHistory)
.Create();
Или я должен написать свое собственное поведение? Если да, может ли кто-нибудь предоставить мне рекомендации по этому поводу?
EDIT: Я чувствую, что я должен подчеркнуть, что я хочу использовать обе мои общие настройки (ModelCustomization) и постпроцессор
EDIT 2: Что я имел в виду с самого начала является то, что ModelCustomization
может (и должен) создать Offer
, и мой будущий постпроцессор должен использовать этот уже созданный образец и заполнить некоторые его свойства.
Спасибо за ответ! Проблема в том, что я хочу одновременно использовать как мою общую настройку (ModelCustomization, используемую во всех тестах), так и мой менее распространенный постпроцессор (OfferFiller, используемый в нескольких тестах) (проверьте мое 3-е поле кода). Я решил, что я могу создать FilteringSpecimenBuilder с оригинальным ModelSpecimenBuilder и custom OfferFiller как Command, но я чувствую, что он недостаточно прочен – joozek
Вы также можете это сделать; включая любые настройки после создания нового экземпляра 'Fixture' (см. обновленный комментарий кода). –
Да, но я думаю, что только одна настройка позволяет создать образец, и я хочу, чтобы он был создан ModelCustomization, а позже обработан после обработки – joozek