什麼是 Orchestra Testbench
Orchestra Testbench 是為套件開發準備的 Laravel 測試 helper。繼承Orchestra\Testbench\TestCase 後,即便單獨的套件也能以彷彿身處 Laravel 應用程式的方式進行測試。
Laravel 官方文件套件開發中也指引套件測試使用 Testbench。
設定
1
安裝 Testbench
2
建立基底 TestCase
3
需要時新增設定或 alias
於
getPackageAliases() 可與 config/app.php 的 aliases 相同方式,註冊測試中使用的 Facade alias。基本的測試撰寫方式
先確認服務提供者是否已載入、Facade 是否如預期運作、設定是否已生效。檔案系統與資料庫的測試
在使用 DB 的測試中,於defineEnvironment() 設定 SQLite 記憶體資料庫,並載入測試對象的 migration。
於多個 Laravel 版本測試
Testbench 的主版本對應 Laravel 的主版本。詳情請確認官方的 Version Compatibility。
若要持續驗證多個版本,可與 GitHub Actions 的 matrix 組合。設計思路請參考套件的版本相容性管理。
總結
使用 Testbench 即便未手動準備 Laravel 應用程式,也能以近似正式運行的形式驗證套件行為。將服務提供者註冊、設定、Facade、DB 都納入測試對象,可大幅減少發布後的問題。相關頁面
Laravel 套件開發
確認以服務提供者為中心的套件實作基礎。
套件的版本相容性管理
確認 Laravel 與 Testbench 的版本策略與 CI matrix 運行方式。