现在的位置: 首页 > 综合 > 正文

Nunit与TestDriven.NET单元测试的学习

2014年01月30日 ⁄ 综合 ⁄ 共 1326字 ⁄ 字号 评论关闭

在合作开发中一定要保证自己所编写的代码在上交时经过单元测试,自己要对自己写的代码负责。下面简介本次开发学习使用的.net下的单元测试工具Nunitvisual studio 的单元测试插件TestDriven.NET

安装Nunit后我们可以在VS引用中引用NunitFramework(不安装则不会有此组件)。Nunit的使用并不复杂,在此简单介绍几个属性。

<TestFixture>在测试类前标明,表示该类下有测试用例。

<Test>标示测试用例

前两个属性是使用Nuit必备的属性,而后几个则有代码优化和测试优化的作用了。

<Setup> ,在此属性下定义的过程,其所在测试类的每一个测试用例运行前都会经过此过程。也就是我们可以将大家都会用到的初始化条件放到其中。与Setup对应的有一个<TestFixtureSetup>属性,此属性下的过程在整个测试类运行时只会初始化一次。而Setup则是每个测试用例都会先运行其下定义的sub过程。

属性<TearDown>每个测试用例后都运行来确定要回收的资源,与之对应的是<TestFixtureTearDown>是所有测试用例运行完后再运行其下定义的sub

可以说这几个属性都是为了令你写的代码卓越,减少资源的占用等。当我们在编写一个测试类时,里面可能会有很多个测试用例。而我们并不是每次都会同时运行这些测试用例,那么就会用到了以下几个属性,来进行测试优化。

<ignore>标示哪个测试用例不运行。与其对应的有<Explicit>,标示了ignore属性则此用例永远不会运行,而标示了Explicit属性如果选中了这个测试用例的话则可以运行。

还有就是我们可以将测试用例分组。使用属性<Category("组名")>。这样我们可以在Nunit中选择组来测试。

Nunit给单元测试带来了方便,不过它仍不十分完善。它不能统计我们测试的代码覆盖率(一个检验我单元测试到位与否的标准),不能对所编写的测试用例进行调试(我们在写测试代码时同编写其他程序时一样容易出错,如果不能调试有时会很难找到哪的错)等等。而TestDriven.NET则可以完成这些,与此同时所有操作都是在Visual studio 集成环境下进行的。虽然TestDriven.NET也是基于Nunit的,但我们在使用它时不必另外安装Nunit,原因是在安装TestDrive.NET的同时会含有Nunit的安装。不过此时我们在引用NunitFramework时会发现没有此程序集了,但我们可以在TestDriven.NET的安装目录下找到此程序集(我的安装目录:C:/Program Files/TestDriven.NET 3/NUnit/2.5/net-2.0/framework),将其引入即可在VS IDE中进行单元测试了。这下我们的测试工作可以更轻松了。

做测试时要注意边界点及此点的左右点,要充分在此考虑测试用例。还要保持我们测试后不会改变原程序中预设的状态,此条在操作数据库时尤为突出,我们在测试时很可能改变了数据库中的数据,测试完后要记得回复到原数据。

总之单元测试进一步保证了我们代码的无误性,单元测试软件简化了我们的单元测试工作。

抱歉!评论已关闭.