Folge 17: von Toby Huang aus San Francisco, Kalifornien (Januar 2021)
Vorherige Folgen
Browsertests sind eine Form automatisierter Tests für Chromium-Code, die als Unittests. Browserinstanzen erstellen und testen verschiedene UI-Elemente, anstatt nur die Eingabe-/Ausgabefunktionalität zu testen wie bei Einheitentests. Integrierte automatisierte Tests sind wichtig für die Simulation die End-to-End-Erfahrung der Nutzenden zu verbessern. Wenn Sie einen Browsertest programmieren, zum programmatischen Ausführen von Einrichtungsaktionen, die der Nutzer manuell durchführen könnte. Zu diesem Zweck sind Mixins eine Suite von Tools, mit denen Sie auch in einem Browsertest auf wiederverwendbare Weise einrichten.
Beispiele für nützliche Mixins:
GuestUserMixin
zum Testen des InkognitomodusUserPolicyMixin
für simulierte Nutzerrichtlinien über den ServerFakeGaiaMixin
für Mocking-Antworten vom GAIA-Server
Sie können Ihre eigenen benutzerdefinierten Mixins erstellen, die eine Vielzahl von Zwecken erfüllen.
Mit dem folgenden Snippet melden Sie sich als Gastnutzer für Ihren Test an. Es ist wichtig, prüfen Sie, ob die Funktion im Inkognitomodus funktioniert.
class MyGuestBrowserTestClass : public MixinBasedInProcessBrowserTest { private: GuestSessionMixin guest_session_mixin_{&mixin_host_}; };
LoggedInUserMixin
ist eine praktische Möglichkeit, sich als Family Link-Nutzer anzumelden
Ihren Test. Wenn Ihre Funktion Auswirkungen auf die Elternaufsicht hat,
sollten Sie Ihre Funktion für betreute Nutzer testen. Ein möglicher Fehler ist
Sie vergessen, dass minderjährige Nutzer den Inkognitomodus deaktiviert haben oder die Installation nicht durchführen können.
ohne Zustimmung der Eltern. LoggedInUserMixin
ist ein Mischmixin
aus anderen Mixinen besteht.
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}; };
Einer der Hauptvorteile von Mixins ist die Verwendung der Zusammensetzung
Vererbung und Vermeidung von Problemen mit der mehrfachen Vererbung von Diamanten.
Die Übernahme von mehr als einer Testbasisklasse
führt zum Diamantproblem,
Sie können Mixins aber auch kombinieren,
um dieses Problem zu vermeiden. Mixins verwenden
die Vererbung nicht vollständig beseitigt, da die Browser-Testklasse immer noch
muss von MixinBasedInProcessBrowserTest
übernehmen, aber das ist glücklicherweise
Die Basisklasse ist allgemein einsetzbar und schlank.