• 网站首页
  • 涉税提问
  • 财税法规
  • 税收筹划
  • 优惠政策
  • 案例解析
  • 培训中心
  • 财富工具
  • 房产专题
  • 会计范文
中财税帮助

去向导航

  • 常见问题
  • 费用核算
  • 负债核算
  • 会计报表
  • 利润核算
  • 收入核算
  • 外汇核算
  • 资本核算
  • 资产核算
  • 更多...

常用分类

  • 浏览器
  • Windows
  • 音乐/电影
  • 网站开发
  • 游戏
  • 办公自动化

中财税帮助系统

2008-10-7

欢迎您登陆并使用中国财税咨询中心为您免费提供的资料,交流,学习为一体的平台!

如果您在使用中遇到什么问题,请您不要吝啬,一定要写信给我们!!

Email:Shellapi@126.com 期待您的来信,或指导批语!

帮助内难免有收集的资料,如果侵犯了您的仅力,请您来信告知,我们马上删除或更新处理!

文章搜索--请输入关键词:

用NUnit2.1简单实现.net的测试驱动开发(TDD)

更多2008-10-7 日更新内容!
    用NUnit2.1简单实现.net的测试驱动开发(TDD)

    下面的例子很简单,就是实现两个整数的四则运算,TDD提倡测试优先,即先写测试用例,再写运行代码,刚下了个NUnit2.1,迫不及待的试了试……

    1最初的测试用例

    using System;

    using NUnit.Framework;

    namespace netshop

    {

    /// <summary>

    /// 四则运算TestCls测试用例

    /// Edit by spgoal

    /// </summary>

    [TestFixture]

    public class TestCase

    {

    public TestCase()

    {

    }

    private TestCls tc;

    [SetUp]

    public void setup()

    {

    tc=new TestCls();

    }

    [Test]

    public void testAdd()

    {



    Assert.AreEqual(10,tc.Add(5,5));

    Assert.AreEqual(7,tc.Add(3,4));

    }

    [Test]

    public void testSub()

    {

    Assert.AreEqual(1,tc.Sub(5,4));

    }

    [Test]

    public void testMul()

    {

    Assert.AreEqual(10,tc.Mul(2,5));

    }

    [Test]

    public void testDiv()

    {

    Assert.AreEqual(2,tc.Div(10,5));

    }

    }

    }



    2 编译这个测试用例,理所当然的是通不过的,因为TestCls类未建立,于是建立该类,不必多说,看代码:

    using System;



    namespace netshop

    {

    /// <summary>

    /// 四则运算的简单例子

    /// </summary>

    public class TestCls

    {

    public TestCls()

    {

    }

    //加法

    public int Add(int a,int b)

    {

    return 0;

    }

    //减法

    public int Sub(int a,int b)

    {

    return 0;

    }

    //乘法

    public int Mul(int a,int b)

    {

    return 0;

    }

    //除法

    public double Div(int a,int b)

    {

    return 0;

    }

    }

    }



    这时编译通过,但由于里面的方法没实现,所以所有测试用例都失败。

    (加载测试用例的方法是:先运行Nunit-Gui V2.1程序,然后在菜单file—open—选择测试用例所在工程目录的bin目录下的dll文件。)



    3 于是编写加减乘除四个函数的实现:

    using System;



    namespace netshop

    {

    /// <summary>

    /// 四则运算的简单例子

    /// </summary>

    public class TestCls

    {

    public TestCls()

    {

    }

    //加法

    public int Add(int a,int b)

    {

    return a+b;

    }

    //减法

    public int Sub(int a,int b)

    {

    return a-b;

    }

    //乘法

    public int Mul(int a,int b)

    {

    return a*b;

    }

    //除法

    public double Div(int a,int b)

    {

    return a/b;

    }

    }

    }



    这时测试通过了!





    4 寻找令测试失败的测试用例

    想想似乎漏了一些可以使程序出错的测试用例,想到了吧?就是除数为零的情况,于是修改testDiv测试用例

    [Test]

    public void testDiv()

    {

    Assert.AreEqual(2,tc.Div(10,5));

    Assert.AreEqual(0,tc.Div(10,0));//除于0的情况

    }

    果然,运行Nunit,出错了^_^ (这人有问题,出错了还笑-_-b)







    于是修改TestCls类代码

    //除法

    public double Div(int a,int b)

    {

    if(b!=0)

    {

    return a/b;

    }

    else

    {

    return 0;

    }

    }

    编译后,再运行Nunit,全部通过!



    5 总结

    这只是一个简单例子,因为以前用JUnit觉得还挺好用,于是想试试.net的Nunit是否好用,果然也不差:)测试优先只是测试驱动开发的一部分内容,还有重构等步骤,所以本文的题目有些名不副实,请大家多多包涵。



    6 相关资料

    NUnit下载地址: http://www.nunit.org/files/nunit-v21/Nunit-V2.1.4.msi

    相关中文文章有:

    [1]NUnit Cookbook(.net单元测试工具) http://www.csdn.net/develop/Read_Article.asp?Id=14908

    [2] 在.NET环境中使用单元测试工具NUnit http://www.csdn.net/develop/Read_Article.asp?Id=22482

    [3] NUnit快速入门 http://www.csdn.net/develop/Read_Article.asp?Id=23530

    http://www.csdn.net/develop/Read_Article.asp?Id=23531

    [4] NUnit 在VS.NET 2003上的插件 http://www.csdn.net/develop/Read_Article.asp?Id=
Site designed by 中国财税咨询中心