如何在 .NET 中编写单元测试?
特别是 Visual Studio 2005?
如果您使用的是 Visual Studio Team Suite 产品之一,请参考 Microsoft.VisualStudio.TestTools.UnitTesting,使用 TestClass 属性装饰您的测试类,并使用 TestMethod 属性装饰您的测试方法。
NUnit 的方法类似,只是你引用了 NUnit.Framework,类将使用 TestFixture 进行修饰,而测试方法将使用 Test 进行修饰。
这是使用NUnit的基本思想
创建一个测试项目。
在测试项目中引用您的应用程序的主项目。
在测试项目中创建一个测试类。
添加Imports nunit.Framework
用<TestFixture()>
比如
<TestFixture()> Public Class MyTestClass
...
创建测试方法,每个都装饰<Test()>
并添加您的测试:
<Test()> _
Public Sub harness()
Assert.IsTrue(False)
End Sub
构建您的测试项目。打开 NUnit 并在那里打开您的测试项目。单击“运行”绿色为通过,红色为失败。
上面的“线束”测试只是为了证明你在开始测试自己的东西之前已经把所有东西都连接起来了。一旦正确连接(并且您在测试中失败)切换到“true”,NUnit 应该显示绿色。
从这里开始,您开始为自己的项目添加测试。
您可以使用其中一种 Team Suite 产品,也可以使用NUnit 等第3 方工具。
+1 在 MbUnit 上并 efinetly 使用 testdriven.net
我发现它更快,特别是对于数据模型测试
SpecUnit 对 NUnit 进行了 BDD 样式单元测试的一个很好的补充。我真的很喜欢在名为“When_x_happens”之类的类中进行测试的想法,并且该类中的方法描述了 x 发生时的预期结果 - “foo_should_do_bar()”。SpecUnit 还有一个用于从测试生成报告的工具,这是一个很好的文档来源。
在我看来,MBUnit是要走的路。它大大优于 NUnit(非常相似,但支持行测试和事务)和其他 MS 工具(Team Suite 并没有真正成功,我不鼓励使用它)。
MbUnit 提供先进的单元测试支持和先进的夹具,使开发人员和测试人员能够测试他们软件的各个方面。