nan*_*nan 2 c# wpf unit-testing mvvm
我使用 Mock 来对 ViewModel 进行单元测试。我的问题是观点。我必须测试文本框的 KeyUp 事件。
在我的 ViewTest 类中,我有以下代码。
View1 ViewTarget = null;
[TestInitialize()]
public void MyTestInitialize()
{
ViewTarget = new Veiw1();
}
[TestMethod]
public void searchTextBox_KeyUpTest()
{
TextBox element = new TextBox();
element.RaiseEvent(
new KeyEventArgs(
Keyboard.PrimaryDevice,
Keyboard.PrimaryDevice.ActiveSource,
0,
Key.Enter) { RoutedEvent = Keyboard.KeyUpEvent }
);
}
Run Code Online (Sandbox Code Playgroud)
我传递什么作为输入源?Keyboard.PrimaryDevice.ActiveSource返回空值。我尝试模拟输入源的PresentationSource,但抛出ProxyGenerationException。
视图中不应该有任何业务逻辑……这就是 MVVM 的全部要点。因此,没有理由检验你的观点。
但是,如果您确实想测试事件处理程序中的某些逻辑,只需将其放入另一个方法中并从事件处理程序中调用它即可。然后您将能够单独测试该方法。看一下这个例子:
public void searchTextBox_KeyUp(object sender, KeyEventArgs e)
{
EventHandlerCode();
}
Run Code Online (Sandbox Code Playgroud)
...
public void EventHandlerCode()
{
// your handling code here
}
Run Code Online (Sandbox Code Playgroud)
EventHandlerCode您可以从单元测试中调用。
| 归档时间: |
|
| 查看次数: |
3210 次 |
| 最近记录: |