新手村導讀 - 2: 初入PHP介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。 PHPUnit 自動化測試大作戰【CH29】在前一篇文章中,我們探討了多重資料庫連線情境下,Model 及 Database Assertion 的應對方式,不過實際上筆者認為比較有難度的,其實是 Migration 應對方式。
今天就讓我們來探討這部分吧!
Migration 應對方式
對於多重資料庫連線這種情境,筆者實務上做過的對應 PHPUnit 自動化測試大作戰【CH30】今天讓我們探討「缺乏 Migration Files 與 Factory Files」的 Legacy 情境吧!
很多時候我們會遇到沒有 Migration Files 或 Factory Files 的 Legacy Codebase,原因大概有以下幾種:
該程式庫原本不是以 Laravel PHPUnit 自動化測試大作戰【CH28】在實務情境上,常會有在單一專案程式庫中,存取多個不同資料庫的使用情境,在這種情況下,我們通常會設置多個資料庫連線(Database Connection)設定。
在平常開發使用設很方便,但要做測試時就會發現一些問題:
在測試程式碼或 Seeder 中調用 factory() 時,都是在預設連線資 PHPUnit 自動化測試大作戰【CH27】今天就讓我們依照前一天的情境題,來撰寫測試案例函數吧!
這次同樣地,先讓我們規畫擬訂測試案例:
測試案例
使用者註冊:
使用者可送出註冊資料,系統將建立使用者資料,並送出含有專屬驗證連結之驗證信,當此驗證連結被開啟後,將讓使用者轉為已驗證狀態
請求錯誤的驗證連結:
錯誤的驗證連結被開啟後 PHPUnit 自動化測試大作戰【CH26】前兩天,我們探討了「網站文章」的情境題;今明兩天,就讓我們探討另一個情境題「會員註冊」吧!
這邊我們同樣假設網站是採前後端分離的設計,因此我們就專注在測試 API 的部分,不過會多一個「註冊驗證信」的部分要實作與做測試驗證。
使用案例
使用者可填寫註冊資料後送出資料。
使用者可收到註冊驗證信