#c# #moq
#c# #moq
Вопрос:
Я пытаюсь издеваться над классом, называемым EnvironmentManager, который содержит свойство с именем WebService_UserName, которое это свойство использует в функции CallMeAsync . Как я могу издеваться над этим частным свойством для написания модульного теста?
Комментарии:
1. Почему вы пытаетесь издеваться над частным свойством класса? В идеале этого не должно быть, поэтому оно объявлено как частное.
Ответ №1:
Как правило, если вы передаете зависимости в свой конструктор, протестировать объект проще. Создайте конструктор для передачи значения вашей частной переменной.
public EnvironmentManager() //what you currently have?
{
_webService_UserName = new WebService_UserName();
}
public EnvironmentManager(object webService_UserName) //passing dependency in instead
{
_webService_UserName = webService_UserName;
}
Я подозреваю, что в этом примере WebService_UserName на самом деле является строкой, поэтому издевательство вообще не требуется.
var underTest = new EnvironmentManager("WebService_UserName example");
var actual = underTest.CallMeAsync().Resu<
Assert.Equal("expected result", actual)
Если я ошибаюсь, и вам действительно нужно издеваться над зависимостью
var mockedDependency = new Mock<WebService_UserName>();
/*set up for mockedDependency */
var underTest = new EnvironmentManager(mockedDependency.Object);
var actual = underTest.CallMeAsync().Resu<
Assert.Equal("expected result", actual)
сообщение в очередь удаления, я просто пытаюсь помочь пользователю, а не сохранить вопрос