哪些不用測試
外部服務
封裝的功能
外部服務
基本上,只要連到網路都算是外部服務。我通常會在交付程式碼之前會關掉網路再跑一次完整測試,因為有時會不小心觸發到不明顯的外部功能,像是發生異常例外會發出 Slack 通知,變更付款狀態要寄信給使用者。
還有,金流要怎麼測試?
我們永遠無法控制對方的程式碼怎麼設計,但我們能確保輸入的東西是對方預期的。金流的測試就只會測試輸入的部分,但不是真的打過去,而是透過 Mock/Spy 的方式去模擬金流 API 的輸入與輸出。
如果把網路關掉的情況下測試就會壞掉,那麼測試一定是錯的。
封裝的功能
函式只要不是 public
都算是封裝的功能。
雖然還是有辦法直接測試封裝功能,但測試程式需要以外部使用者的角度去測試,由於使用者不能直接呼叫 priveate
或 protected
方法就不會直接測試他們,而是透過 public
方法來旁敲側擊的方式去測試。
Last updated