W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
通常,在使用了諸如極限編程之類的敏捷流程的項(xiàng)目中,文檔往往無法跟上項(xiàng)目設(shè)計(jì)與代碼的頻繁變更。極限編程要求群體代碼所有權(quán)(collective code ownership),因此所有開發(fā)者都需要知道整個(gè)系統(tǒng)是如何工作的。如果你足夠訓(xùn)練有素,為測(cè)試使用了“能說明問題的名稱(speaking names)”來描述各個(gè)類應(yīng)當(dāng)干什么,那么就可以用 PHPUnit 的 TestDox 功能來基于項(xiàng)目的測(cè)試生成項(xiàng)目的自動(dòng)文檔。這個(gè)文檔能夠就項(xiàng)目中的各個(gè)類應(yīng)當(dāng)起什么作用給開發(fā)者一份概述。
PHPUnit 的 TestDox 功能著眼于測(cè)試類及其所有測(cè)試方法的名稱,將它們駝峰式大小寫(camel case)拼寫的 PHP 名稱轉(zhuǎn)換為句子:testBalanceIsInitiallyZero()
轉(zhuǎn)化為 "Balance is initially zero(初始結(jié)余為零)"。如果有多個(gè)測(cè)試方法的名字互相之間的差異只是一個(gè)或多個(gè)數(shù)字的后綴,例如 testBalanceCannotBecomeNegative()
和 testBalanceCannotBecomeNegative2()
,假如所有這些測(cè)試都成功,句子"Balance cannot become negative(結(jié)余不能變?yōu)樨?fù)數(shù))"只會(huì)出現(xiàn)一次。
來看一下從 BankAccount
類生成的敏捷文檔:
phpunit --testdox BankAccountTest
PHPUnit 5.0.0 by Sebastian Bergmann and contributors.
BankAccount
[x] Balance is initially zero
[x] Balance cannot become negative
另外,敏捷文檔也可以以 HTML 或純文本格式生成,并寫入文件中,用 --testdox-html
和 --testdox-text
參數(shù)即可。
敏捷文檔可以用于將對(duì)項(xiàng)目所使用的外部包所做出的假設(shè)文檔化。使用外部包,你就暴露于這個(gè)包的行為與你所預(yù)期的不同的風(fēng)險(xiǎn)中,并且包的未來版本可能在你所不知道的情況下有微妙的改變并破壞你的代碼。每次做出假設(shè)時(shí)就編寫一個(gè)對(duì)應(yīng)的測(cè)試可以處理這些風(fēng)險(xiǎn)。如果測(cè)試成功,那么假設(shè)就有效。如果所有的假設(shè)都通過測(cè)試來文檔化,外部包在未來發(fā)布新版本就不會(huì)引起憂慮:如果測(cè)試成功,那么系統(tǒng)就應(yīng)當(dāng)能繼續(xù)正常運(yùn)作。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: