【发布时间】:2015-12-03 19:55:10
【问题描述】:
我们正在开发和维护旧版 winforms 应用程序。该应用程序使用与 GUI 层完全分离的领域模型,但由于存在许多依赖项,因此难以进行单元测试。至少我们有一个构建和安装脚本,我们可以使用它们来自动构建和部署应用程序。
现在,如果我们只能进行一些自动化系统测试...
我们提出了以下想法:
首先,我们可以像这样在脚本文件中编写测试:
public class Test
{
public void TestSaveACustomer()
{
var c = new Customer();
c.Name="Miller";
Mapper.Save(c);
Assert.IsTrue(c.CustomerId >0);
}
}
然后,在构建和部署应用程序之后,我们可以使用嵌入到应用程序二进制文件中的脚本运行器来运行脚本。我们想象我们可以使用以下命令行
myapp.exe /runTest c:\myScript.cs
我们可以开始构建我们自己的测试框架,这不是很酷吗? ... 呃没有。如果我们可以从我们的应用程序中使用现有的测试框架,如 nUnit、xUnit 或 MSTest,工作量会少得多。
我想我需要
- 启动 UnitTestRunner
- 编译脚本
- 告诉运行程序在已编译的脚本程序集中运行测试。
我不知道从哪里开始,因为我只使用了 VisualStudio 中的 UnitTests。
任何现有的测试框架都可以做到这一点吗?我会使用哪些主要类?
【问题讨论】:
-
您可以使用 mstest/nunit/xunit 创建系统测试。它不仅适用于单元测试。像通常运行单元测试一样运行它们。
标签: c# unit-testing nunit xunit.net