У меня есть RelayCommand
, который я пытаюсь проверить. RelayCommand
содержит Service Call
для аутентификации моего пользователя. Показанный ниже:Как написать модульный тест для RelayCommand, который содержит вызов службы Async?
private MvxCommand _signIn;
public MvxCommand SignIn
{
get
{
return _signIn ?? (_signIn = new MvxCommand(() =>
{
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
EndpointAddress endpoint = new EndpointAddress(AppResources.AuthService);
var client = new MyService(binding, endpoint);
client.AuthorizeCompleted += ((sender, args) =>
{
try
{
if (args.Result)
{
//Success.. Carry on
}
}
catch (Exception ex)
{
//AccessDenied Exception thrown by service
if (ex.InnerException != null && string.Equals(ex.InnerException.Message, "Access is denied.", StringComparison.CurrentCultureIgnoreCase))
{
//Display Message.. Incorrect Credentials
}
else
{
//Other error... Service down?
}
}
});
client.AuthorizeAsync(UserName, Password, null);
}));
}
}
Но теперь я использую NUnit
, чтобы проверить мой ViewModels
и я озадачен о том, как проверить мой RelayCommand
я могу сделать:
[Test]
public void PerformTest()
{
ViewModel.SignIn.Execute();
}
Но это не возвращает никакой информации о том, удался ли метод SignIn
или нет.
Как проверить RelayCommand
, содержащий Service Call
?
Это похоже на интеграционный тест для меня, а не на единичный тест. Какое подразделение вы заинтересованы в тестировании? Если это модель представления, вы можете/должны ввести функцию фиктивного (тестового) тестирования, чтобы проверить, отправляются ли правильные аргументы. –
Я новичок в автоматическом тестировании, но, глядя на него, вы можете быть правы, это, возможно, интеграционный тест. Я тестирую свою модель просмотра. Если я использую модель фиктивного представления. Это не будет проверять мою службу, есть ли еще один метод тестирования службы? – user1
Чтобы проверить свою модель просмотра, не используйте фиктивный режим просмотра. Внесите метод проверки в свою модель просмотра, которую вы можете использовать, чтобы убедиться, что ваша модель просмотра правильно называет вашу службу. Вы должны вызвать прокси изнутри. Источник самой службы сервиса должен иметь свои собственные модульные тесты. Если вы хотите провести комплексное тестирование интеграции, это будет сложно автоматизировать. Извините, если бы у меня был ответ на проблему, я бы ответил. Все, что я могу сделать, это попытаться пролить свет на проблему. –