您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > Nunit
使用NUnit对业务逻辑代码进行单元测试
作者:网络转载 发布时间:[ 2012/12/24 10:39:52 ] 推荐标签:

  Nunit是xUnit系列中应用于C#的测试框架,类似JUnit,Gtest等测试框架。可对类,接口的业务逻辑进行单元测试,目前如果不会单元测试的开发人员太不专业了。

  场景:

  1、当编写网站代码时,写了独立的查询类库,但是这个类库的逻辑如何进行测试呢,比较慢的方式是人工点击鼠标,通过网页进行测试。但是这样的效率实在太低了,特别是在出现问题时,还得不停的修改代码-》运行-》点击页面。如此反复,很浪费开发者的时间,特别是改了一些逻辑还得反复测,代码相当不可靠。

  2、如果有单元测试的话,可以利用已经写好的测试案例进行回归测试。比如你写好一些边界条件的测试数据,改了代码只需要重新跑一次单元测试行了。

  3、好处已经足够多了。。如果用熟了,效率提高的不是一点半点。如果觉得时间宝贵的同学建议用上单元测试吧。

  4、虽然VS2010也自带了微软的测试框架,但是我不建议使用,因为这些都是对IDE耦合太高了,换了IDE可能整个测试用例都用不了。

  步骤1:

  下载Nunit

  http://www.nunit.org/,下载zip包,建议使用绿色版本的zip,好处是不要污染电脑的注册表等。

  解压之后放在:

  E:softwareNUnit-2.6.2

  把E:softwareNUnit-2.6.2in添加到用户的环境变量path,这样可以直接通过命令行运行可执行文件.nunit-console.exe

  通过命令行运行的好处是可以加入持续集成,也是自动化测试,对代码持续构建和持续测试,还有是可以通过ide直接调用exe。

  步骤2:

  新建类库QX_Users.编写类库文件QueryHelper.cs,我这里改了使用.net frameworkd 2.0,生成QX_Users.dll库。


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

namespace QxsLogic
{
    public class QueryHelper
    {
       public List<String> QueryUsers(String userId)
        {
            String sql = "select name from users";
            Console.WriteLine(sql);
            List<String> lists = new List<string>();
            lists.Add("infoworld");
            lists.Add("英雄");
            lists.Add(userId);
            return lists;
        }
    }
}
 


  步骤3:

  在QX_Users目录下的新建tests目录,这样可以直接方便维护测试代码和项目代码了,建议使用这种项目结构,多增加一个tests目录。

  步骤4:新建项目Test_QX_Users和测试代码TestQueryHelper.cs,建议使用这种命令,很直观知道测试的是哪个类。

  直接通过浏览方式添加对NUnit目录下的nunit.framework.dll的引用。生成Test_QX_Users.dll库。


using System;
using System.Collections.Generic;
using System.Text;
using QxsLogic;

namespace Test_QX_Users
{
    using NUnit.Framework;
  
    [TestFixture]
    public class TestQueryHelper
    {
        [Test]
        public void TestQueryUsers()
        {
            QueryHelper query = new QueryHelper();
            String id = "hero";
            List<String> lists = query.QueryUsers(id);
            foreach (String name in lists)
            {
                Console.WriteLine(name);
            }
            Assert.Greater(lists.Count,0);
            Assert.AreEqual(id,lists[lists.Count-1]);
            Console.WriteLine("finish Test");
        }
    }
}

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd