zoukankan      html  css  js  c++  java
  • 如何使用NUnit进行单元测试

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

     1using System;
     2using
     System.Collections.Generic;
     3using
     System.Text;
     4

     5namespace
     ClassLibraryForTestTool
     6
    {
     7    public class
     ClassMain
     8    
    {
     9        public string Add(int
     N3)
    10        
    {
    11            switch
     (N3)
    12            
    {
    13                case 1
    :
    14                    return "You Input 1."
    ;
    15                    break
    ;
    16                case 2
    :
    17                    return "You Input 2."
    ;
    18                    break
    ;
    19                default
    :
    20                    return "You Input wrong number."
    ;
    21            }

    22        }

    23    }

    24}

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

    要想让编写的代码让NUnit识别,需要在类前面添加[TestFixture],并且在方法前面添加[Test]。并且注意,测试类中的代码必须为Public Void型。
    代码:
     1using System;
     2using
     System.Collections.Generic;
     3using
     System.Text;
     4

     5using
     NUnit.Framework;
     6

     7namespace
     NTestingCodes
     8
    {
     9
        [TestFixture]
    10    public class
     NClassLibraryForTestTool
    11    
    {
    12
            [Test]
    13        public void
     Add()
    14        
    {
    15            Console.WriteLine("Prepare to test ."
    );
    16            ClassLibraryForTestTool.ClassMain cm = new
     ClassLibraryForTestTool.ClassMain();
    17            string
     rvalue;
    18            rvalue = cm.Add(1
    );
    19            Console.WriteLine("Rvalue from 1: " +
     rvalue);
    20            rvalue = cm.Add(2
    );
    21            Console.WriteLine("Rvalue from 2: " +
     rvalue);
    22            rvalue = cm.Add(3
    );
    23            Console.WriteLine("Rvalue from 3: " +
     rvalue);
    24

    25            Console.WriteLine("Test compelete!"
    );
    26        }

    27    }

    28}
    现在打开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工具还有更为强大的功能,希望高手不吝赐教。
  • 相关阅读:
    转:SkipList跳表
    git操作
    JAVA小工具打包
    Java数字证书操作
    mysql创建数据库和用户
    解决node-sass安装不了的问题
    vscode + angular
    ng2 quickstart-primeng
    ng2 quickstart
    使用淘宝的npm代理下载模块
  • 原文地址:https://www.cnblogs.com/saptechnique/p/1170945.html
Copyright © 2011-2022 走看看