|
TDD介紹
TDD是一種開(kāi)發(fā)方法,全稱是Test-Driven development,中文是測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。作者是Kent Beck。首先讓我介紹一下三種常見(jiàn)的開(kāi)發(fā)方式:
第一種:先Coding,然后Bug Fix。
第二種:先Coding,然后Unit Test,最后Bug Fix。很顯然用了單元測(cè)試的比第一種開(kāi)發(fā)方式要好不少。
第三種:就是本文要說(shuō)的TDD,它的方式和第二種恰恰相反。TDD先設(shè)計(jì)單元測(cè)試,然后再Coding,最后修復(fù)Bug。看下圖:
TDD開(kāi)發(fā)過(guò)程可以看成:給制自己制定一個(gè)目標(biāo),然后努力去完成這個(gè)目標(biāo)。下面是這個(gè)比喻對(duì)應(yīng)關(guān)系。斜杠前面的是TDD,斜杠后面的是完成目標(biāo):
1、寫(xiě)一個(gè)測(cè)試 / 制定一個(gè)目標(biāo)。
2、編譯 / 了解完成目標(biāo)的標(biāo)準(zhǔn)。
3、運(yùn)行測(cè)試,結(jié)果失敗 / 目標(biāo)沒(méi)有達(dá)成。
4、修改代碼 / 為了完成目標(biāo),不停奮斗。
5、再次運(yùn)行測(cè)試,結(jié)果通過(guò) / 目標(biāo)達(dá)成。
這個(gè)說(shuō)明應(yīng)該比較形象啦。
下面我們看下真正的TDD循環(huán),如下圖所示:
TDD循環(huán):
第一步:寫(xiě)測(cè)試類,然后拿去編譯。
第二步:將編譯生成好的dll之類的拿去測(cè)試,測(cè)試失敗。
第三步:失敗之后,就去修改測(cè)試的代碼,直到測(cè)試通過(guò)。
第四步:測(cè)試成功之后,去重構(gòu)你的代碼,增加代碼的可讀性,但不能改變程序的任何功能。重構(gòu)代碼之后還需要測(cè)試,必須測(cè)試成功為止。
這四個(gè)步驟之后,在從寫(xiě)測(cè)試類重新開(kāi)始其他的功能。
ASP.NET MVC中進(jìn)行TDD開(kāi)發(fā)
下面用一個(gè)在ASP.NET mvc2 中進(jìn)行一次簡(jiǎn)單的TDD開(kāi)發(fā)實(shí)戰(zhàn)。單元測(cè)試我使用NUnit。
新建一個(gè)你類庫(kù)項(xiàng)目命名為T(mén)est.Unit。再建一個(gè)ASP.NET mvc2的項(xiàng)目。項(xiàng)目結(jié)構(gòu)如下圖:
首先進(jìn)行第一步,寫(xiě)測(cè)試確定要實(shí)現(xiàn)什么:我們實(shí)現(xiàn)一個(gè)數(shù)據(jù)列表的顯示。
在類庫(kù)項(xiàng)目中添加一個(gè)nunit.framework引用,然后再設(shè)計(jì)一個(gè)TodoControllerTest類用于測(cè)試控制器。
using NUnit.Framework;
namespaceTest.Unit
{
[TestFixture]
public classTodoControllerTest
{
[Test]
public voidShould_Display_A_List_Of_Todo_Items()
{
}
}
}
NET技術(shù):在ASP.NET MVC中進(jìn)行TDD開(kāi)發(fā),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。