哪些不用測試

  1. 外部服務

  2. 封裝的功能

外部服務

基本上,只要連到網路都算是外部服務。我通常會在交付程式碼之前會關掉網路再跑一次完整測試,因為有時會不小心觸發到不明顯的外部功能,像是發生異常例外會發出 Slack 通知,變更付款狀態要寄信給使用者。

還有,金流要怎麼測試?

我們永遠無法控制對方的程式碼怎麼設計,但我們能確保輸入的東西是對方預期的。金流的測試就只會測試輸入的部分,但不是真的打過去,而是透過 Mock/Spy 的方式去模擬金流 API 的輸入與輸出。

如果把網路關掉的情況下測試就會壞掉,那麼測試一定是錯的。

封裝的功能

函式只要不是 public 都算是封裝的功能。

雖然還是有辦法直接測試封裝功能,但測試程式需要以外部使用者的角度去測試,由於使用者不能直接呼叫 priveateprotected 方法就不會直接測試他們,而是透過 public 方法來旁敲側擊的方式去測試。

Last updated