如何测试路由用户界面



我有一个应用程序,我正在为其构建单元测试。 对于某些操作,我使用ApplicationCommands(例如。 ApplicationCommands.New )。 有没有一种简单的方法可以在单元测试中调用CanExecuteExecute路由的 UI 命令? 我想过实现一个模拟IInputElement,但这似乎需要做很多工作。 有没有更好的方法?

[TestMethod]
public void NewDocument()
{
     Assert.IsTrue(ApplicationCommands.New.CanExecute(null, mockTarget));
     ApplicationCommands.New.Execute(null, mockTarget);
     Assert.IsTrue(workspace.OpenDocuments.Count == 1);
}

看起来这与这个问题非常相似,为什么我的命令可以执行总是返回错误单元测试?有谁知道一种在没有 ui 实际存在的情况下执行路由 ui 命令的方法?

我有命令和命令

绑定,但我不知道如何创建命令源和命令目标。

您应该测试响应路由命令的实际ICommand类。 如果此路由命令仅由其中一个代码隐藏文件中的事件处理程序实现,那么我建议从这些文件中拉出一个ICommand并进行测试。

测试

命令是否正确路由不是您应该编写的单元测试。 相反,这应该是一个集成测试,可以通过Visual Studio(或其他一些GUI测试框架)进行编码的UI测试。

最新更新