【问题标题】:C# - WPF : testing strategiesC# - WPF:测试策略
【发布时间】:2011-04-20 21:17:57
【问题描述】:

我是 C# 4.0 和 WPF 的新手,我即将开始一个新的应用程序。

来自 C++/MFC 世界,我对与最新技术一起使用的测试策略很感兴趣。

例如:

  • 单元测试
  • 功能测试
  • 界面测试
  • 其他?

任何建议将不胜感激。

谢谢。

【问题讨论】:

    标签: c# .net wpf unit-testing testing


    【解决方案1】:

    正如 Larry 所说,White UI 测试框架可用于 WPF 的 UI 测试。这篇文章更详细地解释了这一点 -

    使用 白色 UI 测试框架: http://blogs.msdn.com/b/john_daddamio/archive/2008/04/04/testing-wpf-applications-with-the-white-ui-test-framework.aspx

    还可以看看这篇文章来了解如何自动化 UI 测试:

    在 WPF 中自动化 UI 测试 应用: http://msdn.microsoft.com/en-us/magazine/dd483216.aspx

    Xaml 团队提出了一个 XAML 合规套件来验证 XAML(虽然我自己没有尝试过)-

    http://blogs.msdn.com/b/llobo/archive/2010/07/07/xaml-compliance-suite-v1.aspx

    各种第三方工具也可用于测试 WPF 应用程序,例如来自 AutomatedQA 的这个 -

    AutomatedQA 的 TestComplete 是一个 全面的自动化测试工具 这有助于 QA 团队自动化他们的 泛函、单位、回归等 多种测试类型 应用程序类型,包括 Windows 演示基金会 (WPF) 应用程序。

    http://www.automatedqa.com/products/testcomplete/testing-wpf-apps/

    我还建议您阅读 MS 的 WPF 应用程序质量指南

    本文档概述了 测试 Windows 演示文稿 基金会 (WPF) 应用程序和 控制。

    http://windowsclient.net/wpf/white-papers/wpf-app-quality-guide.aspx#intro

    【讨论】:

      【解决方案2】:

      看看White。从他们的网站:

      White 自动化 windows 应用程序https://white-project.googlecode.com/svn/

      White 是一个用于自动化基于 Win32、WinForms、WPF、Silverlight 和 SWT (Java) 平台的富客户端应用程序的框架。它基于 .NET,不需要使用任何专有脚本语言。使用 White 的测试/自动化程序可以使用您已经使用的任何 .NET 语言、IDE 和工具编写。 White 提供了一致的面向对象的 API,隐藏了 Microsoft 的 UIAutomation 库(White 所基于)和 windows 消息的复杂性。仅发布 White 的稳定版本,因此所有版本都已准备好生产。

      【讨论】:

      • 正确,我选择尝试回答我认为在大多数项目中最难测试/测试最少的区域。您对单元测试的回答是正确的。 MVVM 是一个很好的补充。
      【解决方案3】:

      如今,大多数关心 WPF 的单元测试的人都倾向于使用 MODEL-VIEW-VIEWMODEL (MVVM) 设计模式。这是关于 stackoverflow 的tag

      这使您可以对大部分代码(包括许多 UI 逻辑)进行单元测试,而 WPF 不会妨碍您。

      对于系统测试,请参阅此问题的其他答案。

      【讨论】:

        【解决方案4】:

        如前所述,MVVM 模式(甚至是 Model-View-ViewModel-Presenter 模式)是一个好的开始。它们允许您单独和隔离地测试应用程序的不同关注点。

        单元测试部分的一个好工具是Moq。我经常使用它。

        我还经常进行从 ViewModel 到 Model 和 Presenter 的验收测试。所以我可以保证所有层一起工作。这是 UI 测试和单元测试之间的折衷。它的优点是测试运行得更快,因此运行得更频繁。

        如果您还想自动测试 View 和 ViewModel 之间的正确数据绑定,您应该查看Guia。它允许您直接实例化和测试单个 UserControl。

        【讨论】:

          【解决方案5】:

          我非常关心正确的视图。这意味着单元测试。 对我来说,最好的技术是只在单个单元测试中测试视图,这意味着

          模型 + 视图 = 结果。

          开源验证实用程序 ApprovalTests(www.approvaltests.com 或 nuget)将轻松测试 Wpf 视图。

          你可以在这里看到它的实际效果:http://www.youtube.com/watch?v=Xc_ty03lZ9U

          不过,我建议您首先观看 winforms 视频,因为它涉及到更多关于如何测试一般视图的理论:http://www.youtube.com/watch?v=hKeKBjoSfJ8

          代码本身看起来像

          var model = CreateModel();
          var yourWpfView = new YourWpfView(model);
          WpfApprovals.Verify(yourWpfView);
          

          它会截取屏幕并将其与黄金大师进行比较。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-03-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-10-22
            • 2015-07-27
            • 1970-01-01
            相关资源
            最近更新 更多