当前位置 : 主页 > 编程语言 > python >

用NUnit为.NET程序做测试 ---Nunit入门

来源:互联网 收集:自由互联 发布时间:2023-03-22
最近在学习的过程中感觉到项目测试的重要性,自己在网上学习了一番。感觉还是收获颇丰的。在此记下,希望也能为像我这样的程序员一点帮助吧。 我使用的是强悍的NUnit为.NET程序做

最近在学习的过程中感觉到项目测试的重要性,自己在网上学习了一番。感觉还是收获颇丰的。在此记下,希望也能为像我这样的程序员一点帮助吧。

 

我使用的是强悍的NUnit为.NET程序做测试,下载地址:​​http://www.nunit.org/index.php?p=download​​ 下载最新版,然后安装。

 

接下来开始我们的开发和测试。我写的是一个简单的计算功能的类。

 

首先在VS中新建一个类库。

用NUnit为.NET程序做测试 ---Nunit入门_class​​

添加类 Calculate.cs  代码如下:

namespace NunitTest{ public class Calculate { public int Add(int a,int b) { return a + b; } public int Minus(int a,int b) { return a - b; } public int Multiply(int a,int b) { return a * b; } public int Divide(int a,int b) { return a / b; } }}Calculate 就是我们要测试的类了。

在项目中添加测试类 CalculateTest.cs 。首先添加 NUnit.Framework.dll到项目中,

由于安装NUnit时,安装程序已经将NUnit的程序集添加到了项目的.net应用中,直接点击添加。

​​用NUnit为.NET程序做测试 ---Nunit入门_class_02​​

使用NUnit测试项目,必须添加客户端属性标示,添加[TestFixture] 以表明此类是用来测试使用的。

[TestFixture] public class CalculateTest { }接下来添加测试方法:添加[Test]以表明此方法是用来测试使用的。测试方法不能有返回值,不能有参数。[TestFixture] public class CalculateTest { [Test] public void TestAdd() { Calculate cal = new Calculate(); int result = cal.Add(1, 4); Assert.AreEqual(5, result); } [Test] public void TestDivide() { Calculate cal = new Calculate(); int result = cal.Divide(3, 1); Assert.AreEqual(3, result); } }

 

Assert 即测试的 “断言”:在测试框架中,断言是单元测试的核心,我们在测试中要对其程序断言,如果某个断言失败,方法的调用不会返回值,并且会报告一个错误。如果一个测试包含多个断言,那些紧跟失败断言的那些断言都不会执行,因此每个测试方法最好只有一个断言。

 

启动 NUnit,FILE----Open Project

​​用NUnit为.NET程序做测试 ---Nunit入门_.net_03​​

 

将NunitTest .dll添加进去。

​​用NUnit为.NET程序做测试 ---Nunit入门_.net_04​​ 

我们可以看到我们添加的两个测试方法。TestAdd和TestDivide。点击 Run 开始测试

 

 

 

​​用NUnit为.NET程序做测试 ---Nunit入门_测试_05​​

全部变成绿色表示测试通过。

 

但是大家有没有想到,测试的除法 TestDivide()有除数为零的情况。我们在程序中没有做任何判断,我们直接Return了结果。

我们更改一下测试类

[Test] public void TestDivide() { Calculate cal = new Calculate(); int result = cal.Divide(3, 0); Assert.AreEqual(3, result); }

运行 NUnit

,​ 用NUnit为.NET程序做测试 ---Nunit入门_.net_06​​

 

虽然我们这里的运算很简单,但是遇到复杂的情况这个测试就很有必要了。

[Test] [ExpectedException(typeof(DivideByZeroException))] public void TestDivide() { Calculate cal = new Calculate(); int result = cal.Divide(3, 0); Assert.AreEqual(3, result); }[ExpectedException(typeof(DivideByZeroException))] 表示这个测试类我期望抛出一个除数不能为零的异常。再次运行 NUnit,测试通过。

作者: ​​鹏鹏_Lovley​​

上一篇:android Activity 转为 View
下一篇:没有了
网友评论