第 17 集:在加州舊金山的 Toby Huang (2021 年 1 月)
上一集
瀏覽器測試是系統自動測試 Chromium 程式碼的一種形式。 而不是單元測試瀏覽器測試會建立瀏覽器執行個體,並進行測試 各種 UI 元素,而不只是測試純輸入/輸出功能 例如單元測試進行模擬時,整合的自動化測試相當重要 提供使用者端對端體驗編寫瀏覽器測試時,您可能會經常需要 透過程式執行使用者可手動設定的設定動作。 mixins 是一套可輕鬆執行業務的工具 以可重複使用的方式測試設定
實用混合的範例:
GuestUserMixin
用於測試無痕模式UserPolicyMixin
:用於從伺服器模擬使用者政策FakeGaiaMixin
:用於模擬 Gaia 伺服器的回應
你可以建立自訂混音來因應各種用途!
下方程式碼片段是以訪客使用者身分登入測試。請務必 請確認該功能在無痕模式中正常運作
class MyGuestBrowserTestClass : public MixinBasedInProcessBrowserTest { private: GuestSessionMixin guest_session_mixin_{&mixin_host_}; };
LoggedInUserMixin
能讓你以 Family Link 使用者的身分輕鬆登入,體驗以下功能:
進行測試。如果您的功能會影響兒童監督功能的相關問題,
建議為受監管的使用者測試功能。可能發生的錯誤為
忘記讓兒童使用者停用無痕模式,或無法
。「LoggedInUserMixin
」是複合混合物
模型
class MyChildBrowserTestClass : public MixinBasedInProcessBrowserTest { protected: void SetUpOnMainThread() override { MixinBasedInProcessBrowserTest::SetUpOnMainThread(); logged_in_user_mixin_.LogInUser(); } private: LoggedInUserMixin logged_in_user_mixin_{&mixin_host_, LoggedInUserMixin::LogInType::kChild, embedded_test_server(), this}; };
混合使用的主要優點之一是組合模型,而非
,避免產生鑽石多個繼承的問題。
從多個測試基礎類別繼承會導致鑽石的問題。
但您可以混搭混搭使用,又能避免這個問題。使用 Mixins
並不會完全捨棄繼承,因為瀏覽器測試類別
需要繼承自 MixinBasedInProcessBrowserTest
,不過幸運的是
基礎類別是一般用途的輕量級