Épisode 17:par Toby Huang à San Francisco, Californie (janvier 2021)
Épisodes précédents
Les tests de navigateur sont une forme de tests automatisés pour le code Chromium qui est plus de bout en bout que les tests unitaires. Les tests du navigateur créent des instances et testent divers éléments d'interface utilisateur, au lieu de simplement tester les fonctionnalités d'entrée/sortie uniquement comme les tests unitaires. Les tests automatisés intégrés sont importants pour simuler l'expérience de bout en bout. Lorsque vous écrivez un test de navigateur, pour effectuer de manière programmatique des actions de configuration que l'utilisateur peut effectuer manuellement. Pour vous aider, les mixins sont une suite d'outils une configuration de test pour navigateur de manière réutilisable.
Exemples de mixin utiles:
GuestUserMixin
pour tester le mode navigation privéeUserPolicyMixin
pour simuler la règle relative aux utilisateurs à partir du serveurFakeGaiaMixin
pour la simulation de réponses du serveur GAIA
Vous pouvez créer vos propres mixins personnalisés pour des raisons très diverses.
L'extrait ci-dessous se connecte en tant qu'utilisateur invité pour votre test. Il est important de assurez-vous que la fonctionnalité fonctionne en mode navigation privée.
class MyGuestBrowserTestClass : public MixinBasedInProcessBrowserTest { private: GuestSessionMixin guest_session_mixin_{&mixin_host_}; };
LoggedInUserMixin
est un moyen pratique de se connecter en tant qu'utilisateur Family Link pour
votre test. Si votre fonctionnalité affecte un élément lié à la supervision des enfants,
vous devez tester la fonctionnalité pour les utilisateurs supervisés. Un bug possible est
oublier que les utilisateurs enfants ont désactivé le mode navigation privée ou ne peuvent pas installer
sans l'approbation de vos parents. LoggedInUserMixin
est un mixin composé.
composé d'autres mixins.
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}; };
L'un des principaux avantages des mixins est d'utiliser la composition plutôt que
l'héritage et d'éviter les problèmes liés à l'héritage multiple de losange.
Hériter de plusieurs classes de base de test conduit
au problème du losange,
mais vous pouvez mélanger
et mélanger tout en évitant ce problème. Utiliser des mixins
ne supprime pas complètement l'héritage, car la classe de test du navigateur
doit hériter de MixinBasedInProcessBrowserTest
, mais heureusement,
est à usage général et légère.