如何使用NUnit进行单元测试

    在07年上半年,我才逐渐开始使用NUnit这个单元测试工具。之前一般使用WinForm或是Console程序来进行测试,只不过后来开发无界面的Windows服务程序时,才发现原来的测试方式有太大的问题。现在感觉使用专门的测试工具可能会更专业一些。
一、安装:
    我们使用的NUnit大多都是绿色版的,不存在安装的问题。但也有一部分用的可能是打包成MSI的程序,直接安装一下就好了。
二、执行测试程序:
    NUnit提供了三种模式:GUI模式(nunit-gui.exe)、命令行模式和插件模式。我只使用的是GUI模式的,其它两种模式您可以去用用。
三、如何编写用于NUnit单元测试的类:
1.首先创建一个要测试的类文件[ClassLibraryForTestTool]。
代码:

 1None.gifusing  System;
 2None.gifusing
 System.Collections.Generic;
 3None.gifusing
 System.Text;
 4
None.gif
 5None.gifnamespace
 ClassLibraryForTestTool
 6ExpandedBlockStart.gifContractedBlock.gifdot.gif
{
 7InBlock.gif    public class
 ClassMain
 8ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif
{
 9InBlock.gif        public string Add(int
 N3)
10ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif
{
11InBlock.gif            switch
 (N3)
12ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif
{
13InBlock.gif                case 1
:
14InBlock.gif                    return "You Input 1."
;
15InBlock.gif                    break
;
16InBlock.gif                case 2
:
17InBlock.gif                    return "You Input 2."
;
18InBlock.gif                    break
;
19InBlock.gif                default
:
20InBlock.gif                    return "You Input wrong number."
;
21ExpandedSubBlockEnd.gif            }

22ExpandedSubBlockEnd.gif        }

23ExpandedSubBlockEnd.gif    }

24ExpandedBlockEnd.gif}

25None.gif
2.创建一个测试的类[NTestingCodes]:
在其中添加一个类文件[NClassLibraryForTestTool.cs]
引用NUnit.Framework
AddFrameworkRefrence.JPG
然后在代码之前添加:
1None.gifusing NUnit.Framework;

要想让编写的代码让NUnit识别,需要在类前面添加[TestFixture],并且在方法前面添加[Test]。并且注意,测试类中的代码必须为Public Void型。
代码:
 1None.gifusing  System;
 2None.gifusing
 System.Collections.Generic;
 3None.gifusing
 System.Text;
 4
None.gif
 5None.gifusing
 NUnit.Framework;
 6
None.gif
 7None.gifnamespace
 NTestingCodes
 8ExpandedBlockStart.gifContractedBlock.gifdot.gif
{
 9
InBlock.gif    [TestFixture]
10InBlock.gif    public class
 NClassLibraryForTestTool
11ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif
{
12
InBlock.gif        [Test]
13InBlock.gif        public void
 Add()
14ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif
{
15InBlock.gif            Console.WriteLine("Prepare to test dot.gif."
);
16InBlock.gif            ClassLibraryForTestTool.ClassMain cm = new
 ClassLibraryForTestTool.ClassMain();
17InBlock.gif            string
 rvalue;
18InBlock.gif            rvalue = cm.Add(1
);
19InBlock.gif            Console.WriteLine("Rvalue from 1: " +
 rvalue);
20InBlock.gif            rvalue = cm.Add(2
);
21InBlock.gif            Console.WriteLine("Rvalue from 2: " +
 rvalue);
22InBlock.gif            rvalue = cm.Add(3
);
23InBlock.gif            Console.WriteLine("Rvalue from 3: " +
 rvalue);
24
InBlock.gif
25InBlock.gif            Console.WriteLine("Test compelete!"
);
26ExpandedSubBlockEnd.gif        }

27ExpandedSubBlockEnd.gif    }

28ExpandedBlockEnd.gif}
现在打开NUnit-Gui.exe,打开项目,找到那个生成的NtestingCodes.dll文件,如图:
FrameworkOpenProject.JPG
点击运行,以下是测试结果:
FrameworkTestProject.JPG
您可以单击左面的父结点,以便测试整个项目中的所有方法,单击一个方法的结点就仅对一个结点进行测试。
四、使用中的一些小技巧:
    我在实际使用中,一般喜欢用Consonle.WriteLine()方法,把执行步骤的信息打印出来,这样就可以查看程序运行到哪一步出了问题。
    不必担心Consonle.WriteLine()方法会显示一些乱七八糟的东西,只要不是Consonle程序,都不会显示的。当然,为了避免此问题你也可以用#if #endif 语句进行标识。
    另外,还有人可能会用到“Test, ExpectedException(typeof
(ArgumentException))]”,但我一直就只用的Test,现在对于我还算够用。
    使用Ctrl+Shift+B键还可以快速生成解决方案。
   
    当然,这只是我个人的一点使用过程,相信NUnit工具还有更为强大的功能,希望高手不吝赐教。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值