国产探花免费观看_亚洲丰满少妇自慰呻吟_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開發資料庫,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邵东县| 彝良县| 万荣县| 罗江县| 扎鲁特旗| 芮城县| 称多县| 琼海市| 安陆市| 碌曲县| 锡林郭勒盟| 射阳县| 贡嘎县| 临江市| 吉林市| 射洪县| 崇仁县| 高州市| 桃源县| 安乡县| 潞西市| 大安市| 宁强县| 射阳县| 莆田市| 黎川县| 鄄城县| 平江县| 建湖县| 正阳县| 乐至县| 甘洛县| 康乐县| 钟山县| 连州市| 水富县| 平罗县| 凤阳县| 孝感市| 重庆市| 镇原县|