今天我們來做乙個tdd的小例子。通過乙個棧的實現來體驗一下tdd的過程。在本系列的**示例中,使用vs2010作為ide工具,nunit作為測試輔助工具。關於nunit的使用,在園子中已經有很多的文章。可以搜尋參考一下。推薦幾篇不錯的:
nunit詳細使用方法
實踐單元測試(3)-using nunit
今天的任務就是實現乙個棧,乙個沒有邊界的棧。就是資料結構中的棧,對棧中的元素的數量沒有限制。棧是乙個lifo(last-input-first-out,後進先出)的資料結構,先進入棧的元素要最後出來,最後
進入棧的元素可以現出來。
棧的操作包括:push、pop、top、isempty。
根據上面的功能,寫出乙個測試的列表
針對任務列表中的每一條,建立乙個測試用例。
下面是用來測試的stack類和測試類的原始碼。
using
system;
using
system.collections.generic;
using
system.linq;
using
system.text;
namespace
public
class
mystack
<
t>
}public
void
push(t element)
public
t pop()
public
t top()}}
using
system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
nunit.framework;
using
namespace
beautycode.tdd.test1
[test]
public
void
empty()
[test]
public
void
pushone()
[test]
public
void
pop()
[test]
public
void
pushpopcontentcheck()
[test]
public
void
pushpopmultipleelements()
[test]
[expectedexception(
typeof
(invalidoperationexception))]
public
void
popempty_mystack()
[test]
public
void
pushtop()
[test]
public
void
pushtopcontentcheckoneelement()
[test]
public
void
pushtopcontentcheckmultiples()
[test]
public
void
pushtopno_mystackstatechange()
}[test]
[expectedexception(
typeof
(invalidoperationexception))]
public
void
topempty_mystack()
[test]
public
void
pushnull()
[test]
public
void
pushnullcheckpop()
[test]
public
void
pushnullchecktop()}}
technorati 標籤:
tdd,
測試驅動開發
TDD 測試驅動開發
test driven development 測試驅動開發是敏捷開發中的一項核心實踐和技術,也是一種設計方 tdd的原理是在開發功能 之前,先編寫單元測試用例 測試 確定需要編 寫什麼產品 tdd雖是敏捷方法的核心實踐,但不只適用於xp extreme programming 同樣可以適用於其他開...
測試驅動開發TDD
測試驅動開發 testdriven development,tdd 的基本思路是通過測試推進整個的開發工作,並不只是單純的測試工作。利用這種測試方法時,若要完成某個功能,某個類,首先不是編譯正式的 而是先編寫測試 考慮其如何使用 如何測試。然後在對其進行設計 正式編碼。t dd具有很強的目的性,是在...
tdd 測試驅動開發
這是一張影響圖 當壓力越大時,所做的測試就會越少。測試越少,犯的錯就會越多,就會感到更大的壓力。這是乙個會造成情境越來越糟的迴圈。我們用事先編寫的測試來驅動開發,因為測試先於開發,所以我們在感到壓力時,就執行這些測試,它們會馬上給我們一種系統良好的感覺,而且會減少開發出錯的次數,進而減少我們的壓力,...