Monday, July 16, 2018

Nodejs 的 unit test 經驗

今年 6 月在荷蘭旅遊時,偶爾看了 clean coder blog 之後,覺得自己還是來認真寫一些測試。畢竟 Uncle Bob 的文字傳達了一種觀點:「寫程式的紀律才是一切的基石。」

在 intowow 開發主要是用 Nodejs 。本來公司就有在用的 library 是 mocha 和 chai 。 BDD 風格的測試,確實比較容易看懂。由於我在 cepave 的工作也有用過 BDD ,我就不假思索地接受了。

最近愈是寫測試,愈是覺得真的很需要用好用的測試 library :
(1) sinon
功能很強,主要的功能是 stub 和 spy 。 stub 可以重新定義函數的行為,讓函數傳回固定的輸出。 spy 可以對函數做出監控,透過 spy ,可以輕易地驗証某個函數是否被呼叫、被怎樣的引數呼叫。

(2) nock
這個很適合來測 web API 。

(3) rewire
這個可以測模組的「私有函數」。