Tập 17: của Toby Huang tại San Francisco, CA (tháng 1 năm 2021)
Các tập trước
Kiểm thử trình duyệt là một hình thức kiểm tra tự động đối với mã chrome hơn là kiểm thử đơn vị. Hoạt động kiểm thử trình duyệt tạo ra các thực thể trình duyệt và kiểm thử nhiều phần tử trên giao diện người dùng thay vì chỉ kiểm thử chức năng đầu vào/đầu ra thuần tuý giống như kiểm thử đơn vị. Kiểm thử tự động tích hợp có vai trò quan trọng trong việc mô phỏng trải nghiệm toàn diện của người dùng. Khi viết kiểm thử trình duyệt, bạn thường muốn để thực hiện các thao tác thiết lập theo cách lập trình mà người dùng có thể làm theo cách thủ công. Để giúp bạn làm điều này, mixy là một bộ công cụ để thực hiện những việc không hề đơn giản thiết lập thử nghiệm trình duyệt theo cách có thể sử dụng lại.
Ví dụ về trình kết hợp hữu ích:
GuestUserMixin
để thử nghiệm chế độ ẩn danhUserPolicyMixin
để mô phỏng chính sách người dùng từ máy chủFakeGaiaMixin
để mô phỏng phản hồi từ máy chủ Gaia
Bạn có thể tạo danh sách kết hợp tuỳ chỉnh của riêng mình để phục vụ nhiều mục đích!
Đoạn mã dưới đây đăng nhập với tư cách là người dùng khách để kiểm thử. Điều quan trọng là đảm bảo tính năng của bạn hoạt động ở chế độ ẩn danh.
class MyGuestBrowserTestClass : public MixinBasedInProcessBrowserTest { private: GuestSessionMixin guest_session_mixin_{&mixin_host_}; };
LoggedInUserMixin
là một cách thuận tiện để đăng nhập với tư cách là người dùng Family Link
thử nghiệm của bạn. Nếu tính năng của bạn ảnh hưởng đến bất cứ nội dung nào liên quan đến tính năng giám sát trẻ em,
bạn nên kiểm thử tính năng cho người dùng được giám sát. Lỗi có thể xảy ra là
quên rằng người dùng là trẻ em đã tắt chế độ ẩn danh hoặc không thể cài đặt
tiện ích mà không có sự chấp thuận của cha mẹ. LoggedInUserMixin
là một hỗn hợp phức hợp
bao gồm các hỗn hợp khác.
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}; };
Một trong những lợi ích chính của trình trộn là sử dụng thành phần thay vì
tính kế thừa và tránh vấn đề gặp phải tình trạng nhiều kế thừa kim cương.
Việc kế thừa từ nhiều lớp cơ sở kiểm thử sẽ dẫn đến vấn đề kim cương,
nhưng bạn có thể kết hợp và kết hợp các hỗn hợp đồng thời tránh được vấn đề này. Sử dụng trình kết hợp
không loại bỏ hoàn toàn tính kế thừa vì lớp thử nghiệm trình duyệt vẫn
cần kế thừa từ MixinBasedInProcessBrowserTest
, nhưng may mắn là
lớp cơ sở là mục đích chung và gọn nhẹ.