.net - Windows 窗体的 Visual Studio 单元测试

标签 .net winforms visual-studio-2008 unit-testing nunit

我们正在 Visual Studio 2008 中处理一个项目。我们正在使用它提供的内置测试套件(Microsoft.VisualStudio.TestTools.UnitTesting 命名空间)。事实证明,令我们懊恼的是,大量的复杂性(以及因此产生的错误)最终被编码到我们的 UI 层中。虽然我们的单元测试在覆盖我们的业务层方面做得不错,但我们的 UI 层是一个持续的刺激源。理想情况下,我们也希望对其进行单元测试。有谁知道在 Visual Studio 中执行此操作的良好“Microsoft 兼容”方式?它是否会引入某种冲突来“混合”单元测试框架,例如 nUnitForms用微软的东西?对于单元测试表单,我应该注意哪些明显的熊市陷阱?

最佳答案

您需要重构 UI,以便 UI 不需要任何单元测试。 UI 应包含最少或不包含业务逻辑。有很多模式可以解决这个问题。 Martin Fowler 有一篇很好的文章,对这些模式做了很多解释:http://martinfowler.com/eaaDev/uiArchs.html

Martin Fowler 在 Refactoring 一书中有一小章讨论了重构不可测试的 UI。您还可以阅读有效地使用遗留代码。

注意:有一些工具可用于自动化 UI 测试。我想到了 SilkTest。但如果可能的话,我不会使用它们。

关于.net - Windows 窗体的 Visual Studio 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/401667/

相关文章:

.net - Visual Studio 中的即时窗口自动清理

c# - .NET 中 "HttpRequest.RequestType"和 "WebRequest.Method"值的常量在哪里?

c# - 使用图表控件在两点之间画一条线

c# - 在 C# 项目中自动包含文件

visual-studio-2008 - TFS 工作区

c# - 无法加载文件或程序集 'System.Web.Http.Owin'

c# - 具有多个 edmx 的 Entity Framework

c# - 从控件子类化 ParentForm WndProc

c# - 改变边界后矩形的矩阵变换

visual-studio-2008 - 用于删除 SourceSafe 绑定(bind)的实用程序?