zoukankan      html  css  js  c++  java
  • NUnit单元测试

    单元测试对程序员来说是非常重要的一门技术,但是在实际编程中却往往被程序员所忽视。微软的VS开发工具为我们提供了强大的单元测试环境,在VS当中可以直接对类库项目进行测试,极大的方便了程序员的自我纠错能力。除了官方的解决方案之外,还有一种非常好的免费开源的第三方测试工具,那就是NUnit。它是从Java中著名的JUnit单元测试框架移植过来,这个可以从官网中得到答案,http://www.nunit.org/

    在NUnit官网的下载页面http://www.nunit.org/index.php?p=download,列出了其所有发布过的版本,当前最新的版本号为2.6.3。

    msi是安装版的NUnit,而bin是文件版的,还有src是NUnit的源代码以及doc是NUnit的帮助手册。

    建议专业用户下载bin版本,即NUnit-2.6.3.zip。里面有绿色版的NUnit用户界面程序,开发用的dll文件以及doc文档手册。

    下载好zip包后,解压到磁盘目录下。

    好,下面就正式演示使用NUnit进行单元测试。

    便于简单演示,我们用四则运算来模拟测试的过程。

    首先在VS2012当中建立一个类库项目,起名为NUnitTest,并建立一个四则运算类Calculator。

    namespace NUnitTest  
    {  
        public class Calculator  
        {  
            public static double Add(double a, double b)  
            {  
                return a + b;  
            }  
      
            public static double Sub(double a, double b)  
            {  
                return a - b;  
            }  
      
            public static double Mutiply(double a, double b)  
            {  
                return a * b;  
            }  
      
            public static double Divide(double a, double b)  
            {  
                return a / b;  
            }  
        }  
    } 
    View Code

    就是一个简单的加减乘除方法。

    然后我们再建立一个单元测试类UnitTest,用于进行单元测试。

    namespace NUnitTest  
    {  
        [TestFixture]  
        public class UnitTest  
        {  
            public double NumA { get; set; }  
      
            public double NumB { get; set; }  
      
            [SetUp]  
            public void SetUp()  
            {  
                NumA = 10;  
                NumB = 20;  
            }  
      
            [Test]  
            public void TestAdd()  
            {  
                double result = Calculator.Add(NumA, NumB);  
                Assert.AreEqual(result, 30);  
            }  
      
            [Test]  
            public void TestSub()  
            {  
                double result = Calculator.Sub(NumA, NumB);  
                Assert.LessOrEqual(result, 0);  
            }  
      
            [Test]  
            public void TestMutiply()  
            {  
                double result = Calculator.Mutiply(NumA, NumB);  
                Assert.GreaterOrEqual(result, 200);  
            }  
      
            [Test]  
            public void TestDivide()  
            {  
                double result = Calculator.Divide(NumA, NumB);  
                Assert.IsTrue(0.5 == result);  
            }  
        }  
    }
    View Code

    这里面在方法前都加了[Test]用于标记该方法为单元测试方法,需要添加引用nunit.framework.dll文件。这个文件可以在下载好的zip包中的NUnit-2.6.3inframework目录找到。而方法内部使用了Assert类的静态方法对预期结果进行断言。

    下面就可以使用NUnit工具来进行测试了。我们将NUnitTest类库项目右键属性中的调试节点,设置启动动作为启动外部程序,然后设置路径为下载zip包中的nunit.exe。如:C:Usersguwei4037DesktopNUnit-2.6.3in unit.exe。

    运行类库项目,这时候为我们启动了NUnit的gui工具。我们按照下面的步骤进行操作。

    1、选择File——New Project,指定NUnit项目文件到指定目录。

    2、选择Tools——IDE Support——Visual Studio,勾上选项,点击OK。

    3、选择Project——Add VS Project

    在弹出的对话框中找到NUnitTest项目的csproj文件并打开。

    会看到已经把我们项目中需要测试的方法都加载到了NUnit的GUI中。

    我们只需要点击右侧的“RUN”按钮,运行测试即可。

    如我们所愿,所有单元测试都通过了。

    这是通过运行外部程序(NUnit的GUI界面)来达到单元测试的效果的。

    总感觉很麻烦,还要调用外部的应用程序,有没有简单点的最好能够跟VS工具紧密结合的方式来进行NUnit单元测试呢?答案是肯定的。

    我们在VS中选择工具菜单栏下的扩展和更新,选择联机并在搜索框中输入NUnit。

    找到NUnit Test Adapter,下载安装即可。按照好之后关闭VS,重启一下就好了。

    我们打开类库项目中的UnitTest类,在右键弹出的菜单中点击运行测试。

    运行结束后,会在左侧的测试资源管理器当中显示本次操作的结果。

    是不是很方便啊?直接在VS当中集成了,不用去配置外部程序了。

    相信通过上面的介绍,你已经学会如何在VS中集成NUnit进行单元测试了。

    关于更多的NUnit的参考文档,请访问:http://www.nunit.org/index.php?p=docHome&r=2.6.3

  • 相关阅读:
    mysql 远程登陆不上
    hdu 5339 Untitled【搜索】
    SqlServer 书目
    passwordauthentication yes
    oracle 11g RAC ocfs2
    Oracle 11g RAC database on ASM, ACFS or OCFS2
    CentOS ips bonding
    Oracle 11g RAC features
    openStack 王者归来之 trivial matters
    openstack windows 2008 img
  • 原文地址:https://www.cnblogs.com/guwei4037/p/3551060.html
Copyright © 2011-2022 走看看