C# WPF-棱镜(CAL)-自动功能测试
我现在是一个一年前开始的项目的新手 该项目使用C#、WPF、PRISM(CAL)、实体框架、LINQ等。应用程序使用MVVM模式完成 有一些单元测试,但我被要求做功能测试,因为大多数错误是在一起使用所有组件时发现的 我开始做一个MSTEST项目。我的目标是启动整个应用程序后端(model和viewmodel),模拟UI事件并检查访问一个或多个viewmodel属性的模型修改 我的第一个客户是创建实体上下文(模型),初始化所有PRISM模块,并开始在视图模型中发布事件,以修改我的模型,并在相同或其他视图模型中检查结果。我必须:C# WPF-棱镜(CAL)-自动功能测试,c#,wpf,integration-testing,automated-tests,prism-2,C#,Wpf,Integration Testing,Automated Tests,Prism 2,我现在是一个一年前开始的项目的新手 该项目使用C#、WPF、PRISM(CAL)、实体框架、LINQ等。应用程序使用MVVM模式完成 有一些单元测试,但我被要求做功能测试,因为大多数错误是在一起使用所有组件时发现的 我开始做一个MSTEST项目。我的目标是启动整个应用程序后端(model和viewmodel),模拟UI事件并检查访问一个或多个viewmodel属性的模型修改 我的第一个客户是创建实体上下文(模型),初始化所有PRISM模块,并开始在视图模型中发布事件,以修改我的模型,并在相同或其
- 重写prism Boostrapper类
- 创建一个简单的应用程序(因为在MSTEST下
为空)。我刚刚从System.Windows.Application.Current
派生了一个类System.Windows.Application
IEventAggregator
不工作。事件不会被触发。我不想模拟事件聚合器,因为我希望它在prism模块之间触发我的事件(我正在进行功能测试,而不是单元测试)
我找到了一种方法,通过玩Dispatcher
和DispatcherFrame
使其工作,但我在区域管理器中得到了似乎失败的股票
我的问题是:有没有更好的方法来进行功能/集成测试而不必显示用户界面?如果您正在进行功能测试,您应该希望显示用户界面。例如,如果某个ui设计师决定将文本框放在复选框的顶部,而您不能再单击该复选框,则需要在功能测试中选择该复选框
因为您已经在VisualStudio中编写了UI测试,所以您将遇到WPF的一些问题,主要是在编写的UI映射中无法轻松访问的控件。但除此之外,它工作良好,易于构建测试,并且与TFS构建代理和MSBuild集成良好。我的应用程序是使用MVVM和PRISM构建的。MVVM告诉我们,所有的逻辑都在ViewModel中,而不是视图中,因此在不显示视图的情况下(只需在ViewModel上执行操作),就可以轻松地进行自动功能测试。使用棱镜不应该(按照我的说法)使这不可能做到!