我已经开发了使用MVVM作为体系结构的WPF应用程序,并且正在编写一些单元测试。在我看来,我有一个绑定到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));
}
当前,这将测试属性,以查看在UI中单击按钮时是否可以执行相关方法。这是通过满足条件来实现的,但是据我了解,我还需要测试功能。考虑到这一点,例如,如何测试单击按钮时是否发生了正确的功能。即如何测试由于在UI中单击按钮而执行ICommand MoreInfoCommand时会发生什么。
我知道可以直接测试私有方法,但是在我的单元测试中,我也应该检查功能,如果可以,我该如何做。
谢谢。