我一直在研究WPF应用程序,我正在使用ModelViewViewModel设计模式.我有一些来自视图的事件,导致ViewModel活动.
从UnitTest获得这些事件的合理方法是什么?例如,我想模拟drop事件.我真的不想构建一个存根视图,只是为了提升事件.
欢迎任何建议.
谢谢.
根据MVVM模式:
View了解ViewModel - 它将作为具体实例或接口引用它
ViewModel根本不应该知道视图.
如果你需要处理事件,那么我知道有两种方法可以做到:
1: 在viewmodel中显示一个命令,并使用数据绑定来触发它.这是我的首选方式,例如:
class MyViewModel { public ICommand ClickCommand { get; set; } }
如果执行此操作,则只需myViewModel.ClickCommand.Execute
手动调用即可测试该命令.
2: 在viewmodel中公开一个函数,并在文件中写入绝对最小值.xaml.cs
来处理事件并调用函数,例如:
class MyViewModel { public void HandleClick(){ } }
如果您这样做,那么您只需myViewModel.HandleClick
手动调用即可进行测试.您不需要为单元测试MyClickHandler
代码而烦恼,因为它只有1行!