使用NUnit进行单元测试
2016-03-21 17:18
183 查看
NUnit是xUnit家族中的一员,适用于.NET的开发者。其简单易用,界面简洁,是.NET程序员的好帮手。
如果说你没有进行单元测试的良好习惯,建议你还是好好想想,如何保证你程序的正确性?纯粹依赖于Debug,效率无疑是非常低下的。而且更为重要的是,程序的可测试性,对于系统整体架构影响至关重要。可测试性从代码使用者的角度来看代码,和从代码内部看代码,是两个视角。这里不展开讨论。
NUnit是由个人开发的,可以免费使用,其下载地址为:http://www.nunit.org/
这里以NUnit2.6.3为例,来说明如何使用Nunit进行单元测试。
首先是下载并安装NUnit,这里不细说。
安装好以后,在VS2010中,建立测试工程。
在References中,加入Nunit的动态库:
好了,现在可以编写测试代码了。 如果你知道TDD(Test Drive Development),那么先写测试代码,再写代码,是个良好的编程体验。
一个样例文件如下:
首先,你要引用NUnit的Framework。其次,TestFixture标签定义的测试大类,会出现在NUnit的测试用例中,比如下面这个例子:
Setup标签是进行初始化的。为保证每次测试的环境一样,往往需要准备数据,准备环境等,如果每个测试用例都写一遍,代码就太重复了。使用Setup,把初始化内容写入,这样NUnit框架保证每个测试用例运行时,都会先执行Setup,从而达到测试用例之间的隔离。
Test标签就是测试用例,每个测试用例也会出现在NUnit中。
NUnit提供了丰富的断言,读者可以自行查看。
在VS中完成了测试工程的编写后,我们转到NUnit看看。
首先,在【File】菜单中选择【New Project】,弹出提示框中输入工程名字。
接着,在【Project】菜单中,选择【Add Assembly】,在弹出的对话框中,选择要执行的测试工程的dll或者exe。
加载完毕后,就可以看到我们在刚才的测试文件中,所有标注有TestFixture和Test标签的测试用例了。选择某个或者所有测试用例,单击右边界面上的Run,就可以执行测试用例。其他的就不讲了,看看界面提示就知道那些用例通过,那些没有通过了。
根据用例执行情况,修改源代码后,再次编译,NUnit能够自动重新加载测试工程,这点很不错。
说到底,NUnit只是一个测试工具,它可以提升你写测试的效率,以及执行测试的效率。但如何写好测试代码,如何用测试来驱动生成代码甚至系统架构,则需要经过专门的训练。
如果说你没有进行单元测试的良好习惯,建议你还是好好想想,如何保证你程序的正确性?纯粹依赖于Debug,效率无疑是非常低下的。而且更为重要的是,程序的可测试性,对于系统整体架构影响至关重要。可测试性从代码使用者的角度来看代码,和从代码内部看代码,是两个视角。这里不展开讨论。
NUnit是由个人开发的,可以免费使用,其下载地址为:http://www.nunit.org/
这里以NUnit2.6.3为例,来说明如何使用Nunit进行单元测试。
首先是下载并安装NUnit,这里不细说。
安装好以后,在VS2010中,建立测试工程。
在References中,加入Nunit的动态库:
好了,现在可以编写测试代码了。 如果你知道TDD(Test Drive Development),那么先写测试代码,再写代码,是个良好的编程体验。
一个样例文件如下:
首先,你要引用NUnit的Framework。其次,TestFixture标签定义的测试大类,会出现在NUnit的测试用例中,比如下面这个例子:
Setup标签是进行初始化的。为保证每次测试的环境一样,往往需要准备数据,准备环境等,如果每个测试用例都写一遍,代码就太重复了。使用Setup,把初始化内容写入,这样NUnit框架保证每个测试用例运行时,都会先执行Setup,从而达到测试用例之间的隔离。
Test标签就是测试用例,每个测试用例也会出现在NUnit中。
NUnit提供了丰富的断言,读者可以自行查看。
在VS中完成了测试工程的编写后,我们转到NUnit看看。
首先,在【File】菜单中选择【New Project】,弹出提示框中输入工程名字。
接着,在【Project】菜单中,选择【Add Assembly】,在弹出的对话框中,选择要执行的测试工程的dll或者exe。
加载完毕后,就可以看到我们在刚才的测试文件中,所有标注有TestFixture和Test标签的测试用例了。选择某个或者所有测试用例,单击右边界面上的Run,就可以执行测试用例。其他的就不讲了,看看界面提示就知道那些用例通过,那些没有通过了。
根据用例执行情况,修改源代码后,再次编译,NUnit能够自动重新加载测试工程,这点很不错。
说到底,NUnit只是一个测试工具,它可以提升你写测试的效率,以及执行测试的效率。但如何写好测试代码,如何用测试来驱动生成代码甚至系统架构,则需要经过专门的训练。
相关文章推荐
- Android App中DrawerLayout抽屉效果的菜单编写实例
- centos中crontab(计时器)用法详解
- secureCRT连不上虚拟机上的ubuntu
- Html+CSS transform属性中的 rotate 属性值
- 错误: 无法确定AssetManager的签名
- Android EditText点击其他区域收起软键盘
- CUDA编程-(2)其实写个矩阵相乘并不是那么难
- c#连接oracle的几种方式
- 构建之法(前三章读后感)
- 【转】Android ImageView圆形头像
- [JavaScript/JQuery] 无需 Flash 使用 jQuery 复制文字到剪贴板
- Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- HDU 1166 线段树
- 安卓入门学习(一)用户界面设计
- Android文件上传工具类
- Viewpager和轮播图的冲突
- Orcad 制作一个器件多个PART 时注意事项
- easyUI基础
- 贝塞尔曲线
- 一个简单的VxWorks内存泄露检测