Создать заглушку родинок
Я новичок в Pex и Moles, и я хочу использовать параметризованные модульные тесты. Я использую инъекцию конструктора и хочу создать заглушку родинок для моего параметра.
public UserLogic(IUserRepository userRepository)
{
_userRepository = userRepository;
}
В документации, которую я прочитал, говорится, что Moles сгенерирует тип заглушки для моего хранилища SIUserRepository. Но я не могу понять, как создать заглушку. Кто-нибудь сможет привести пример. Спасибо
1 ответ
Решение
Я предполагаю, что вы еще не дошли до создания сборки Moles. Вот несколько основных шагов, которым нужно следовать;
- в вашем модульном тестовом проекте разверните ссылки и щелкните правой кнопкой мыши сборку, которая содержит тип IUserRepository - выберите "Добавить сборку родинок";
- Теперь у вас есть заглушки и родинки Moles для этой сборки в пространстве имен ".Moles", поэтому, если у вас был MyAsssembly.SomeNamespace.IUserRepository, теперь у вас будет доступный тип заглушки MyAssembly.SomeNameSpace.Moles.SUserRepository.
Теперь в некотором методе UserLogic_Test вы можете ссылаться на заглушку следующим образом;
[TestMethod]
public void UserLogic_Test()
{
MyAssembly.SomeNameSpace.Moles.SUserRepository mock = new SUserRepository();
UserLogic o = new UserLogic(mock);
Assert.AreEqual(1, o.SomeMethod());
}