使用 PHPUnit 在 Laravel 測試您的 DOM

王林
發布: 2024-07-22 09:06:42
原創
402 人瀏覽過

Test Your DOM in Laravel with PHPUnit

PHPUnit 開箱即用,具有AssertSee 和AssertSeeText 等功能,在這兩種情況下我們都可以針對特定文本進行斷言,為了斷言HTML 標籤,我們將依靠這些功能進行一些自定義工作來進一步完善它們.

使用案例

我需要測試某些表單是否有 CSRF 令牌。

基本解決方案

Laravel CSRF 令牌指令產生如下輸入:

雷雷

由於產生的令牌在請求之間發生變化,我們不會測試產生的令牌值,而是斷言輸入存在並具有某些所需的屬性,PHPUnit assertSee 有第二個參數來轉義值,以便我們可以做一些事情像這樣:

雷雷

改進迭代

它可以解決我們的解決方案,但可能有更好的方法可以在更多情況下使用它,因此使用“一廂情願”的方法編寫我想要的程式碼將是這樣的:

雷雷

這將很有用,因為它添加了一個斷言,只需傳遞標籤名稱和屬性數組即可在多種情況下工作

我們可以在 Laravel 中加入類似的內容,方法是在 AppServiceProvider 或任何其他自訂 Provider 中的 TestResponse 類別中新增自訂巨集:

雷雷

現在我們可以透過測試標籤和屬性的存在來測試我們的 DOM。

瞄準 Laravelish 方式

在這種情況下,我們可以向前推進一點,我需要在應用程式中以多種形式斷言表單作為CSRF 令牌,因此我們可以依靠我們的巨集來創建更多斷言,在本例中作為預期的HTML 標籤且屬性不會改變我可以添加這樣的東西:

雷雷

這個斷言很短,可重複使用,易於閱讀和使用:

雷雷

對於更強大的斷言,您應該考慮一個優秀的包,例如:

辛貝克/laravel-dom-斷言

希望這有助於在您的測試中添加基本的 DOM 斷言

以上是使用 PHPUnit 在 Laravel 測試您的 DOM的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!