【问题标题】:WPF - PRISM (CAL) - automated functional testingWPF - PRISM (CAL) - 自动化功能测试
【发布时间】: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 模块之间触发我的事件(我正在进行功能测试,而不是单元测试)。

我找到了一种通过使用DispatcherDispatcherFrame 使其工作的方法,但我在RegionManager 中获得了似乎失败的库存。

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

【问题讨论】:

    标签: c# wpf integration-testing automated-tests prism-2


    【解决方案1】:

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

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

    【讨论】:

    • 我的应用程序是使用 MVVM 和 PRISM 构建的。 MVVM 告诉我们逻辑都在 ViewModel 而不是 View 中,因此很容易在不显示 View 的情况下进行自动化功能测试(只需对 ViewModel 进行操作)。使用 PRISM 不应该(根据我)使这成为不可能!
    猜你喜欢
    • 1970-01-01
    • 2012-10-28
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多