У меня есть PresenterFactory, который создает классы Presenter на основе параметра Role. В частности, параметр Роль представляет собой внешний класс, который я не могу контролироватьНадлежащее применение Mock-объектов в модульном тестировании
Моя фабрика выглядит примерно так (IE 3 участника.):
public class PresenterFactory {
public Presenter CreatePresenter(Role role, ...) {
if (role.IsUserA("Manager")) {
return new ManagerPresenter(...)
}
if (role.IsUserA("Employee")) {
return new EmployeePresenter(...)
}
}
}
я застрял на том, как написать модульный тест для этого поскольку создание объекта Role
заставляет доступ к базе данных. Я думал, что смогу это сделать. Мой тест выглядит следующим образом:
public void TestPresenterFactory()
{
var mockRole = new Mock<Role>();
mockRole .Setup(role=> role.IsUserA("Manager"))
.Returns(true)
.AtMostOnce();
PresenterFactory.CreatePresenter(mockRole.Object, ...);
mockUserInfo.VerifyAll();
}
Однако я получаю ArguementException
:
Invalid установка на не переопределение члена: роль => role.IsUserA ("Менеджер")
Я не уверен, куда идти, и конечно может использовать некоторую коррекцию курса. Что я делаю не так?
Вот что я пытался, но получил * Неверная настройка для члена, не являющегося переопределяемым * исключение –
В этом случае я рекомендую ответ womp написать класс оболочки вокруг объекта Role. –