zoukankan      html  css  js  c++  java
  • VS2008单元测试之NUnit集成与应用(转)

    转自:http://www.cnblogs.com/yangyancheng/archive/2010/02/22/1671185.html 

    首先下载NUnit,我这里用的是2.5的版本,可以去http://www.nunit.org下载最新版本。
    安装版:http://launchpad.net/nunitv2/2.5.3/2.5.3/+download/NUnit-2.5.3.9345.msi
    解压版:http://launchpad.net/nunitv2/2.5.3/2.5.3/+download/NUnit-2.5.3.9345.zip
    我这里用的是解压版。
    然后,打开VS2008,新建一个类库工程,如下图示:

    1

    在此工程中,新建一个类,取名TestedClass,具体代码如下:

     using System;

    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace NunitTest
    {
        public class TestedClass
        {
            public static int Add(int n, int m)
            {
                return n + m;
            }
            public static int Minus(int n, int m)
            {
                return n - m;
            }
        }
    }

     然后再新建一个工程NunitDemo,作为NUnit的具体使用工程,主要是放一些测试用的代码,具体如下图所示

    2

    并添加两个引用,一个是刚才建的工程,另一个是NUnit

    在工程中,新建一个类,取名为TestTestedClass,并键入如下代码

     using System;

    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using NUnit.Framework;
    using NunitTest;
    using System.IO;

    namespace NunitDemo
    {
        [TestFixture]
        public class TestTestedClass
        {
            [Test]
            public void TestAdd()
            {
                int n = 10;
                int m = 20;
                Assert.AreEqual(TestedClass.Add(n, m), 30);
            }

            [Test]
            public void TestMinus()
            {
                int n = 10;
                int m = 20;
                Assert.AreEqual(TestedClass.Minus(n, m), 30);
            }
     
        }
    }

     现在可以启动NUnit进行,选择File->Open Project,浏览到刚才建立的NunitDemo的bin目录,选择NunitDemo.dll,这时就可以看到所写的两个测试方法了,点击Run即可运行,结果如下图示:

    在这个图中,我们可以看到哪个用例通过,哪个用例未例未通过,原因是什么,如:
    NunitDemo.TestTestedClass.TestMinus:
      Expected: -10
      But was:  30
    这样,测试用例只能是在测试代码中使用,而且,要更改测试用例,必须重新编译,为了一次使用多个用例,可以在Bin目录下建立一个TestCase.txt的文本文件,并填入如下内容:
    10 20 30
    0 0 0
    1 -1 1
    11111111 11111111 22222222
    这里每行代码一个测试用例,然后在测试工程中,键入如下代码:

     [Test]

            public void TestAdd2()
            {
                StreamReader sr = new StreamReader("TestCase.txt");
                
                string testCase=sr.ReadLine();
                while(testCase!=null)
                {
                    string[] num = testCase.Split(' ');
                    if (num.Length < 1)
                        return;

                    int n = int.Parse(num[0]);
                    int m = int.Parse(num[1]);
                    int result = int.Parse(num[2]);

                    Assert.AreEqual(TestedClass.Add(n, m), result);

                    testCase = sr.ReadLine();

                }
                sr.Close();          

            }

     这样,我们如果更改用例,直接更改文件内容即可,并可以一次使用多个用例。

    以上是采用外部NUnit的程序运行,如果想要在VS 环境中运行,在 Solution Explorer里右击你的NunitDemo工程, 在弹出菜单中选择Properties,会打开VS的程序设置见面在左侧选择Debug,在右侧的Start Action中点选Start external program:点击右侧的浏览按钮(...)浏览到NUnit的安装目录下的nunit.exe这个文件,即可。
    NUnit 在线quickStart:http://www.nunit.org/index.php?p=quickStart&r=2.5.3
    文档下载:http://sourceforge.net/projects/nunit/files/NUnit%20Version%202/NUnit-2.5.2.9222-docs.zip/download
  • 相关阅读:
    (一)研究方法入门
    机器学习入门之认知
    夯实Java:从面向对象说起
    不同子系统采用不同MySQL编码LATIN1和UTF8的兼容
    性能优化 java 24 次阅读 · 读完需要 15 分钟 0
    如何用纯 CSS 创作一个充电 loader 特效
    如何用纯 CSS 创作一个 3D 文字跑马灯特效
    如何用纯 CSS 绘制一颗闪闪发光的璀璨钻石
    如何用 CSS 创作一个立体滑动 toggle 交互控件
    如何用纯 CSS 创作一个金属光泽 3D 按钮特效
  • 原文地址:https://www.cnblogs.com/colder/p/2377438.html
Copyright © 2011-2022 走看看