由于前端項目需求變更頻繁,所以如果采用tdd的模式將陷入無盡的測試維護(hù)痛苦中,這個時候可以采用bdd的模式,bdd不關(guān)注具體的代碼細(xì)節(jié)(或者可以說tdd是為了代碼質(zhì)量,而bdd是為了測試),bdd借用面向?qū)ο笾械那皟刹剑ㄐ枨蠓治?用例設(shè)計)中得出的用例設(shè)計 來實現(xiàn)bdd中的用戶故事(實際上用例設(shè)計等于用戶故事),然后程序員根據(jù)用戶故事編寫測試代碼(可以在編碼前或者編碼后編寫),最后完成項目后進(jìn)行測試,我們可以說bdd是集成測試。因為tdd更多的利用在很少改變的代碼上比如基礎(chǔ)庫 基礎(chǔ)服務(wù) 框架等。
tdd:主要不是為了測試,而是為了代碼質(zhì)量,因為單元測試的存在使得可以任意的重構(gòu)代碼從而編寫出更好的代碼。
bdd:為了測試,主要聚焦于功能的使用。
在react中,我們可以先分析項目中的變與不變的部分,其中不變的部分我們使用tdd,而變化的部分我們使用bdd。比如:視圖組件,redux業(yè)務(wù)邏輯這些我們使用bdd,而基礎(chǔ)組件,工具函數(shù)等我們使用tdd。