Episódio 17:por Toby Huang em São Francisco, Califórnia (janeiro de 2021)
Episódios anteriores
Os testes do navegador são uma forma de teste automatizado para o código do cromo que são mais completos do que os testes de unidade. Os testes de navegador criam instâncias e testam vários elementos de IU em vez de apenas testar a funcionalidade de entrada/saída pura como os testes de unidade fazem. Os testes automatizados integrados são importantes para simular experiência completa do usuário. Ao criar um teste de navegador, muitas vezes para realizar de forma programática ações de configuração que o usuário poderia fazer manualmente. Para ajudar você a fazer isso, os mixins são um conjunto de ferramentas para realizar tarefas da configuração do teste do navegador de forma reutilizável.
Exemplos de mixins úteis:
GuestUserMixin
para testar o modo de navegação anônimaUserPolicyMixin
para simular a política do usuário do servidorFakeGaiaMixin
para simular respostas do servidor GAIA
Crie mixins personalizados para vários propósitos.
O snippet abaixo faz login como um usuário convidado para seu teste. É importante verificar se o recurso funciona no modo de navegação anônima.
class MyGuestBrowserTestClass : public MixinBasedInProcessBrowserTest { private: GuestSessionMixin guest_session_mixin_{&mixin_host_}; };
O LoggedInUserMixin
é uma forma conveniente de fazer login como usuário do Family Link para
para o teste. Caso o recurso afete qualquer elemento relacionado à supervisão infantil,
Teste seu recurso para usuários supervisionados. Um possível bug é
esquecer que usuários menores de idade estão com o modo de navegação anônima desativado ou não podem fazer a instalação.
extensões sem a aprovação do familiar responsável. LoggedInUserMixin
é um mixin composto
compostas por outros 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}; };
Um dos principais benefícios dos mixins é usar composição em vez de
herança múltipla e evitar problemas com herança múltipla em losango.
Herdar de mais de uma classe base de teste leva ao problema diamante,
mas é possível misturar e combinar mixins para evitar esse problema. Como usar mixins
não elimina totalmente a herança porque a classe de teste do navegador ainda
precisa herdar de MixinBasedInProcessBrowserTest
, mas felizmente esse
é de uso geral e leve.