如何编写.NET单元测试?
如何在.NET中编写单元测试?
特别是Visual Studio 2005?
解决方案
我们可以使用Team Suite产品之一,也可以使用第三方工具(例如NUnit)。
如果我们使用的是Visual Studio Team Suite产品之一,则引用Microsoft.VisualStudio.TestTools.UnitTesting,用TestClass属性修饰测试类,并用TestMethod属性修饰测试方法。
NUnit的方法类似,除了我们引用NUnit.Framework之外,该类将用TestFixture装饰,而测试方法将用Test装饰。
我们可以使用多种方法编写单元测试。不确定是要询问执行单元测试的工具还是询问单元测试的过程。
NUnit是一种流行的测试工具。
我们可以将Microsoft的MSTest与Visual Studio Team Suite产品一起使用。
如果我们打算进行大量测试,建议阅读有关持续集成的文章。
就实际编写测试而言,对于StackOverflow而言,这是一个非常复杂的主题。我建议阅读有关测试的文章。那里有很多涵盖此主题的内容。
在我看来,MBUnit是必经之路。它远远优于NUnit(非常相似,但具有行测试和事务支持)和其他MS工具(Team Suite并不是很成功,我不鼓励使用它)。
MbUnit provides advanced unit testing support with advanced fixtures to enable developers and testers to test all aspects of their software.
如果我们决定使用NUnit,那么最好看看testdriven.net,因为它提供了与Visual Studio的很好的集成。当前有多个其他单元测试框架。我建议我们考虑使用xUnit。我知道我们在想什么:"为什么要使用另一个单元测试框架?"。的确,没有什么比这更好的了,但是仍然如此。查看此博客文章,如果我们决定可以使用ReSharper插件进行Visual Studio集成。
在MbUnit上+1并精确使用testdriven.net
我发现它快得多,特别是对于数据模型测试
这是使用NUnit的基本思想
创建一个测试项目。
在测试项目中引用应用程序的主项目。
在测试项目中创建一个测试类。
添加Imports nunit.Framework
用<TestFixture()>装饰类
例如。<TestFixture()>公共类MyTestClass
...
创建测试方法,每个方法都以<Test()>装饰,并添加测试:
<Test()> _ Public Sub harness() Assert.IsTrue(False) End Sub
建立测试项目。
打开NUnit并在那里打开测试项目。
点击"运行"
绿色是通过,红色是失败。
上面的"线束"测试仅用于证明我们在开始测试自己的东西之前已经将所有内容挂钩。正确连接后(在测试中失败),切换到" true",NUnit应该显示绿色。
从这里开始,我们可以为自己的项目添加测试。
SpecUnit为BDD样式单元测试的NUnit提供了很好的补充。我真的很喜欢在名为" When_x_happens"的类中进行测试的想法,并且该类中的方法描述了x发生" foo_should_do_bar()"时的预期结果。 SpecUnit还具有用于从测试中生成报告的工具,这是大量文档的来源。