PHPUnit 開箱即用,具有AssertSee 和AssertSeeText 等功能,在這兩種情況下我們都可以針對特定文本進行斷言,為了斷言HTML 標籤,我們將依靠這些功能進行一些自定義工作來進一步完善它們.
我需要測試某些表單是否有 CSRF 令牌。
Laravel CSRF 令牌指令產生如下輸入:
由於產生的令牌在請求之間發生變化,我們不會測試產生的令牌值,而是斷言輸入存在並具有某些所需的屬性,PHPUnit assertSee 有第二個參數來轉義值,以便我們可以做一些事情像這樣:
它可以解決我們的解決方案,但可能有更好的方法可以在更多情況下使用它,因此使用“一廂情願”的方法編寫我想要的程式碼將是這樣的:
這將很有用,因為它添加了一個斷言,只需傳遞標籤名稱和屬性數組即可在多種情況下工作
我們可以在 Laravel 中加入類似的內容,方法是在 AppServiceProvider 或任何其他自訂 Provider 中的 TestResponse 類別中新增自訂巨集:
現在我們可以透過測試標籤和屬性的存在來測試我們的 DOM。
在這種情況下,我們可以向前推進一點,我需要在應用程式中以多種形式斷言表單作為CSRF 令牌,因此我們可以依靠我們的巨集來創建更多斷言,在本例中作為預期的HTML 標籤且屬性不會改變我可以添加這樣的東西:
這個斷言很短,可重複使用,易於閱讀和使用:
對於更強大的斷言,您應該考慮一個優秀的包,例如:
辛貝克/laravel-dom-斷言
希望這有助於在您的測試中添加基本的 DOM 斷言
以上是使用 PHPUnit 在 Laravel 測試您的 DOM的詳細內容。更多資訊請關注PHP中文網其他相關文章!