У меня есть тестовый файл, в котором я заглушаю зависимости (репозитории в основном) моего тестируемого класса. Пример хранилища погасил (укорачивается примерно от 200 линий):Как избежать дублирования кода для аналогичных заглушек?
internal class doerRepository : IDoerRepository
{
public IQueryable<Doer> ActiveDoers
{
get
{
Account account = new Account();
//Property setting for account
Zone zone = new Zone();
//Property setting for zone
Doer doer = new Doer();
doer.Zone = doerZone;
doer.Account = doerAccount;
var list = new List<Doer>();
list.Add(doer);
return list.AsQueryable();
}
}
}
и метод испытания выглядит следующим образом:
[Test]
public void IsValidDoer_DoerIsValid()
{
var doerValidation = new DoerValidation(new doerRepository());
//Assert things
}
Проблема заключается в том, что эта среда объекта (это окурки около половины базы данных) является моей базой. У меня есть около 25 тестов для этого тестового файла. Для каждого теста я должен слегка изменить заглушку (попробуйте с недопустимой зоной, недопустимой учетной записью и т. Д.). Я заканчиваю копирование, вставляя 200 строк, чтобы изменить одну мелочь (и мне нужно переименовать класс за это).
Можно ли повторно использовать код заглушки и внести соответствующие изменения? Я попытался это, но значение, которое я изменить не обновляется
internal class doerRepository2 : IDoerRepository
{
public IQueryable<Doer> ActiveDoers
{
get
{ List<Doer> list = new doerRepository().ActiveDoers.ToList();
list.First().Account = new Account();
return list.AsQueryable();
}
}
}
Awsome, это помогает! – Mathieu