Я разработал приложение WPF с использованием MVVM в качестве архитектуры и пишу несколько модульных тестов как часть этого. На мой взгляд, у меня есть кнопка, привязанная к свойству в ViewModel, которое можно увидеть ниже.
ViewModel
public ICommand MoreInfoCommand
{
get
{
if (_moreInfoCommand == null)
{
_moreInfoCommand = new RelayCommand(parameter => OpenLink());
}
return _moreInfoCommand;
}
}
private void OpenLink()
{
try
{
Process.Start("https://www.google.com/");
}
catch
{
// catch error...
}
}
В моем модульном тестировании я создал следующий модульный тест:
UnitTest
[Description("Test MoreInfoCommand")]
[TestMethod]
public void TestMoreInfoCommand()
{
viewModel vm = new viewModel();
Assert.IsTrue(vm.MoreInfoCommand.CanExecute(null));
}
В настоящее время это тестирует свойство, чтобы увидеть, может ли быть выполнен соответствующий метод при нажатии кнопки в пользовательском интерфейсе. Это проходит по мере выполнения условий, однако, насколько я понимаю, мне также нужно проверить функциональность. Имея это в виду, как мне, например, проверить, что при нажатии кнопки происходит правильная работа. Т.е. как проверить, что происходит, когда ICommand MoreInfoCommand выполняется в результате нажатия кнопки в пользовательском интерфейсе.
Я знаю, что частные методы можно тестировать напрямую, но при модульном тестировании я должен также проверять функциональность, и если да, то как я могу это сделать.
Заранее спасибо.