0

我目前是一年前开始的项目的新手。

该项目使用 C#、WPF、PRISM (CAL)、Entity Framework、LINQ 等。该应用程序使用 MVVM 模式完成。

有一些单元测试,但我被要求进行功能测试,因为大多数错误是在将所有组件一起使用时发现的。

我开始制作一个 MSTEST 项目。我的目标是启动整个应用程序后端(模型和视图模型),模拟 UI 事件并检查访问或更多视图模型属性的模型修改。

我的第一个客人是创建实体上下文(模型),初始化所有 PRISM 模块并开始在视图模型中发布事件以修改我的模型并在相同或其他视图模型中检查结果。我不得不 :

  • 覆盖 prism Boostrapper 类
  • 创建一个简单的应用程序(因为在 MSTEST 下它似乎 System.Windows.Application.Current为空)。我刚刚从System.Windows.Application.

我可以使用 UnityContainer 访问我的所有接口实现。我现在遇到的问题是它IEventAggregator不起作用。事件不会被触发。我不想模拟事件聚合器,因为我希望它在棱镜模块之间触发我的事件(我正在做功能测试,而不是单元测试)。

Dispatcher我找到了一种通过使用and来使其工作的方法DispatcherFrame,但是我得到了RegionManager似乎失败的股票。

我的问题是:有没有更好的方法来做我的功能/集成测试而不必显示用户界面?

4

1 回答 1

0

如果您正在进行功能测试,您应该希望显示用户界面。例如,如果某个 ui 设计师决定在复选框顶部放置一个文本框,而您不能再单击该复选框,则需要在功能测试中进行选择。

因为您在 Visual Studio 中编写了 UI 测试,您会遇到 WPF 的一些问题,主要是在编码的 UI 映射中您无法轻松访问的控件。但除此之外,它运行良好,易于构建测试,并且与 TFS 构建代理和 MSBuild 很好地集成。

于 2011-05-02T17:29:52.720 回答