【发布时间】:2011-05-02 12:42:38
【问题描述】:
我目前是 1 年前开始的项目的新手。
该项目使用 C#、WPF、PRISM (CAL)、Entity Framework、LINQ 等。该应用程序使用 MVVM 模式完成。
有一些单元测试,但我被要求做功能测试,因为大多数错误是在所有组件一起使用时发现的。
我开始制作 MSTEST 项目。我的目标是启动整个应用程序后端(模型和视图模型),模拟 UI 事件并检查访问或更多视图模型属性的模型修改。
我的第一个客人是创建实体上下文(模型),初始化所有 PRISM 模块并开始在视图模型中发布事件以修改我的模型并在相同或其他视图模型中检查结果。我不得不:
- 重写 prism Boostrapper 类
- 创建一个简单的应用程序(因为在 MSTEST 下似乎
System.Windows.Application.Current为空)。我刚刚从System.Windows.Application派生了一个类。
我可以使用 UnityContainer 访问我的所有接口实现。我现在遇到的问题是IEventAggregator 不起作用。事件不会被触发。我不想模拟事件聚合器,因为我希望它在 prism 模块之间触发我的事件(我正在进行功能测试,而不是单元测试)。
我找到了一种通过使用Dispatcher 和DispatcherFrame 使其工作的方法,但我在RegionManager 中获得了似乎失败的库存。
我的问题是:有没有更好的方法来进行功能/集成测试而不必显示用户界面?
【问题讨论】:
标签: c# wpf integration-testing automated-tests prism-2