第 17 集:由 Toby Huang 在加利福尼亚州旧金山创作(2021 年 1 月)
上一集
浏览器测试是一种自动化测试形式,适用于 比单元测试更加简单。浏览器测试会创建浏览器实例并测试 各种界面元素,而不仅仅是测试纯输入/输出功能 类似单元测试集成的自动化测试对于模拟 用户的端到端体验。编写浏览器测试时,您通常需要 以编程方式执行用户可手动执行的设置操作。 为帮助您实现这一目标,mixin 是一套用于执行重要任务的工具, 以可重复使用的方式进行浏览器测试设置
有用的 mixin 示例:
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}; };
Mixin 的主要优势之一是使用组合,而不是
以及避免菱形多重继承方面的问题。
继承自多个测试基类会导致菱形问题,
但您可以混搭混合内容,同时避免此问题使用 mixins
因为浏览器测试类仍然
需要从 MixinBasedInProcessBrowserTest
继承,但幸运的是,
基类是通用的轻量级基类。