国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

用NUnit2.1簡單實現.net的測試驅動開發(TDD)

2024-07-10 12:57:52
字體:
來源:轉載
供稿:網友
用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=26568
注冊會員,創建你的web開發資料庫,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肃南| 宽城| 东山县| 商都县| 淮滨县| 禄丰县| 鄱阳县| 汝南县| 进贤县| 普兰店市| 商丘市| 淮阳县| 名山县| 巴青县| 理塘县| 岳西县| 玛多县| 和田市| 田阳县| 陆河县| 武城县| 策勒县| 黎平县| 锡林郭勒盟| 开封县| 临湘市| 灵武市| 安龙县| 安乡县| 潢川县| 台山市| 淅川县| 天全县| 稻城县| 新巴尔虎左旗| 敖汉旗| 莲花县| 三门峡市| 祁阳县| 宜兴市| 云林县|