同一個系統要維護兩個版本的對外介面,還要跟一個不受自己控制的外部系統交換資料。這個系列從一套真實運作中的 Laravel 專案的 63 支測試檔案出發,記錄測試分層怎麼設計才有意義:哪一層的失敗該讓你立刻知道是自己程式壞了,哪一層只是外部系統的資料長得跟預期不一樣。涵蓋 Unit/Feature 測試分層、測試替身設計、外部 SOAP 服務的整合測試手法,以及幾次「測試通過但沒有真的驗證到東西」的真實踩坑紀錄。
前言 「測試不是分 Unit 跟 Feature 兩層就好了嗎?為什麼還要另外花 30 天講這件事?」 如果你的專案只有一套對外介面、不用跟任何外部系統交換資料...
前言 「這個專案的測試是用 Pest 寫的還是 PHPUnit 寫的?」 如果你隨手打開這個系統的 tests/ 目錄亂逛,答案看起來很明確:滿眼都是 test...