REPL(交互式命令行)驅(qū)動(dòng)開(kāi)發(fā)
REPL驅(qū)動(dòng)的開(kāi)發(fā)并不是一個(gè)廣泛認(rèn)可的名詞,它是我喜歡的開(kāi)發(fā)風(fēng)格,對(duì)測(cè)試有特定的影響。在使用解釋型語(yǔ)言的時(shí)候很常見(jiàn),如Lisp、Python、Ruby和JavaScript等。
在你使用讀取、計(jì)算、打印、循環(huán)( REPL)類(lèi)型語(yǔ)言時(shí),你可以編寫(xiě)小而獨(dú)立的函數(shù),并且不依賴(lài)于全局的狀態(tài)。
函數(shù)在編寫(xiě)的時(shí)候就得到了測(cè)試。
這種開(kāi)發(fā)的方式和TDD有些區(qū)別。它側(cè)重于編寫(xiě)沒(méi)有或者有很少的副作用的函數(shù)。讓代碼更易于理解,而不是像TDD那樣,在實(shí)現(xiàn)功能代碼前編寫(xiě)測(cè)試用例。
你可以把這種開(kāi)發(fā)方式和單元測(cè)試結(jié)合起來(lái)。因?yàn)槟阋部梢杂肦EPL驅(qū)動(dòng)開(kāi)發(fā)的方式去實(shí)現(xiàn)測(cè)試,這樣的結(jié)合是一種很有效的策略。