php 单元测试分享,今日分享:代码整洁之道- 单元测试
從開發(fā)的角度來講,先把變量、函數(shù)按照一定的命名、格式組織好,接下來,開始編寫代碼,在業(yè)界,很多提倡測(cè)試驅(qū)動(dòng)開發(fā),接下和大家聊一下單元測(cè)試。
TDD是測(cè)試驅(qū)動(dòng)開發(fā)(Test-Driven Development)的英文簡稱,是敏捷開發(fā)中的一項(xiàng)核心實(shí)踐和技術(shù),也是一種設(shè)計(jì)方法論。TDD的原理是在開發(fā)功能代碼之前,先編寫單元測(cè)試用例代碼。
1、TDD三定律
定律一 在編寫不能通過的單元測(cè)試前,不可編寫生產(chǎn)代碼。
定律二 只可編寫剛好無法通過的單元測(cè)試,不能編譯也不算不通過。
定律三 只可編寫剛好足以通過當(dāng)前失敗測(cè)試的生產(chǎn)代碼。
測(cè)試與生產(chǎn)代碼一起編寫,測(cè)試只是比生產(chǎn)代碼早寫幾秒鐘。
2、保持測(cè)試整潔
測(cè)試代碼和生產(chǎn)代碼一樣重要,一樣需要保持足夠的整潔。
測(cè)試帶來一切好處。
整潔的單元測(cè)試代碼會(huì)給你的代碼帶來很多好處。測(cè)試越臟,代碼最終會(huì)變得越臟。如果丟失了測(cè)試,代碼開始腐爛。
3、整潔的測(cè)試
整潔的測(cè)試有一個(gè)十分重要的要素:可讀性。
測(cè)試代碼要保持明確、整潔,還要有足夠的表達(dá)力。在測(cè)試中,要以盡可能少的文字表達(dá)大量內(nèi)容。
測(cè)試模式:構(gòu)造-操作-檢驗(yàn),
第一環(huán)節(jié) 構(gòu)造測(cè)試數(shù)據(jù)
第二環(huán)節(jié) 操作測(cè)試數(shù)據(jù)
第三環(huán)節(jié) 驗(yàn)證操作是否得到期望的結(jié)果。
3.1 面向特定領(lǐng)域的測(cè)試語言
使用測(cè)試的語言測(cè)試,更具可讀性。
3.2 雙重標(biāo)準(zhǔn)
測(cè)試API中的代碼有著與生產(chǎn)代碼不同的工程標(biāo)準(zhǔn),要求應(yīng)當(dāng)簡單、精悍、足具表達(dá)力,但又要和生產(chǎn)代碼一般有效。
4、每個(gè)測(cè)試一個(gè)斷言
有人認(rèn)為每個(gè)測(cè)試函數(shù)都應(yīng)該有且只有一個(gè)斷言語句。
每個(gè)測(cè)試一個(gè)概念。
更好的規(guī)則或許是每個(gè)測(cè)試函數(shù)中只測(cè)試一個(gè)概念,只做一件事情。
5、F.I.R.S.T 原則
整潔代碼應(yīng)當(dāng)遵循以下規(guī)則:
快速(Fast)測(cè)試應(yīng)該夠快。測(cè)試應(yīng)該能快速運(yùn)行。
獨(dú)立(Independent)測(cè)試應(yīng)當(dāng)相互獨(dú)立。某個(gè)測(cè)試不應(yīng)為下一個(gè)測(cè)試設(shè)定條件。
可重復(fù)(Repeatable)測(cè)試應(yīng)當(dāng)在任何環(huán)境下中重復(fù)通過。
自足驗(yàn)證(Self-Validating)測(cè)試應(yīng)該有布爾值輸出。無論是失敗還是通過,應(yīng)直接了當(dāng)?shù)贸鼋Y(jié)論,而不應(yīng)該通過查看日志來確認(rèn)測(cè)試是否通過。
及時(shí)(Timely)測(cè)試應(yīng)及時(shí)編寫。單元測(cè)試應(yīng)該恰好在使其通過的生產(chǎn)代碼之前編寫。
6、小結(jié)
測(cè)試與代碼同等重要,它保證和增強(qiáng)了生產(chǎn)代碼的可擴(kuò)展性、可維護(hù)性和可復(fù)用性。保持測(cè)試的整潔,讓測(cè)試具有表達(dá)力并短小精悍。發(fā)明作為面向特定領(lǐng)域語言的測(cè)試API,幫助自己編寫測(cè)試。
在實(shí)際的開發(fā)中,很多團(tuán)隊(duì),由于各種外部、內(nèi)部的因素,工期緊、時(shí)間少、任務(wù)重等諸多因素,很多事沒有TDD、沒有單元測(cè)試,即使如此,我們還是要堅(jiān)持這一原則,慢慢往單元測(cè)試這個(gè)目標(biāo)靠近...
你可能喜歡:
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請(qǐng)注明出處,感謝您的尊重!
總結(jié)
以上是生活随笔為你收集整理的php 单元测试分享,今日分享:代码整洁之道- 单元测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php修改html,关于html:用PH
- 下一篇: php echarts 两条曲线图,使用