NUnit菜鸟使用向导

8 篇文章 0 订阅

关于单元测试,TDD(驱动测试开发)、敏捷开发等知识在此不多说了,其实我没有达到能够在这里得瑟这些事情的阶段。

网上有很多高手分享的Nunit的安装等教程,但在使用的具体过程中,可能有些许的不同,这点不同就足以让新手蛋疼一会了。

因此,我把自己这个菜鸟级的经验分享给菜鸟同志们,大家共勉,希望不要拍砖。

我始终觉得,高手的教程很好,但是对于菜鸟来说却不一定如此,因为有时候菜鸟们遇到的问题,高手不屑于写在教程里。

菜鸟们有时候觉得自己了解的太少,于是就不好意思出来分享那点经验,我现在腆着脸把自己的那点经历分享下,希望菜鸟们之间多一些知识的分享。

----------------------------------------------------------美丽的分割线-------------------------------------------------------------

对于一个项目的测试,采用Nunit进行测试的话,测试类文件要放在一个独立的项目下,编译为一个单独的dll文件,但最好和被测试项目放在同一个解决方案下(不是必须)。

因此,在已有项目的解决方案下,添加新项目,选择类库。

测试项目的命名,可以在被测试项目的名称上加上Test,或者被测试的是一个多项目的解决方案,可以使用解决方案的名称,然后加上Test。

采用NUnit进行单元测试,一定要添加nunit.framework(NUnit框架)的引用。

看到好多教程,只是简单的测试了下1+2是不是等于3,让人看得一头雾水,不知道这测试有什么必要。

其实测试是要测试一个项目的,是外部项目,而不是测试项目中的某个类、某个方法或者是某段代码,测试3/0是否异常完全是没有必要的。

因此,在添加引用的时候,不要忘记了,把被测试的项目添加进去。如果被测试的是类库,则添加dll引用,如果是可执行程序,添加exe文件的引用。

添加完引用后,便可以引入命名空间。

引入命名空间后,就可以在测试代码中使用[Test]等属性。

同样不要忘记了引入被测试项目的命名空间,这样就可以使用被测试的可访问类和方法等,以便开展测试。

TDD的过程,可以简单的理解为这样,先测试一功能是否正确实现,如果没实现,编码以实现,然后再编写新功能的测试代码,以此循环进行。

虽然是先测试,后编码,但如果被测试的类和方法没有建立的情况下,你的测试编码是没法写的,至少是不会有自动提示的。

因此,可以先编写功能框架,写出需要的类和类中的方法,此时方法是空方法。

然后,编写测试代码,进行测试。因为项目类方法是空方法,所以测试不通过,没有能实现想要的结果。

于是,编写项目类方法实现功能,然后再测试,没通过接着修改。

最后,全部通过后,修改测试代码,要求实现新的功能,接着修改或者编写项目代码。。。。

因此,测试代码的编写和实现代码的编写是交替的,测试项目和被测试项目也是交替运行的。因此可以设置解决方案的启动项目为当前选定内容,这样更方便一些。

测试项目既然是一个类库,不是可执行的,那么测试的时候如何运行?

操作办法是,在调试中,选择启动外部程序,然后选择Nunit来启动该测试项目。

(这样就可以在选中该项目的时候,运行边自动启动NUnit,而且NUnit自动加载该项目dll文件。

当然你也可以采用笨方法,打开NUnit,然后添加该项目的dll文件,每次修改测试代码后,右击项目选择生成即可。)

**我是64位平台,最初运行后,打开的NUnit总是没有加载测试项目,这点好困惑。

最后查看NUnit的安装后文件,发现GUI程序有两个,有一个是标明为x86的,另一个仅为nunit.exe,我想大伙和我的想法差不多,既然是64位系统,应该选择nunit,加x86的应该是兼容32位系统下使用的。

但最后我发现,程序是被默认安装在Program Files (x86)目录下的,也就是说,NUnit这个程序是32位的,不是64位,自然不是选择nunit,而应该选择加X86的。于是重新选择程序后,一切正常。

其他的,诸如类似Test这样的属性怎么写等等我就不写了。呵呵,不会。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值