Episodio 17: de Toby Huang en San Francisco, CA (enero de 2021)
Episodios anteriores
Las pruebas del navegador son una forma de prueba automatizada del código de Chromium que es más que las pruebas de unidades. Las pruebas del navegador crean instancias de navegador y prueban varios elementos de la IU en lugar de probar solo la funcionalidad de entrada y salida como lo hacen las pruebas de unidades. Las pruebas automatizadas integradas son importantes para simular la experiencia de extremo a extremo del usuario. Al escribir una prueba de navegador, con frecuencia quieres para realizar de manera programática acciones de configuración que el usuario podría realizar manualmente. Para ayudarte a lograrlo, las combinaciones son un conjunto de herramientas para realizar tareas del navegador de forma reutilizable.
Ejemplos de combinaciones útiles:
GuestUserMixin
para probar el modo IncógnitoUserPolicyMixin
para simular una política del usuario desde el servidorFakeGaiaMixin
para simular respuestas del servidor de GAIA
Puedes crear tus propias combinaciones personalizadas para cumplir con una gran variedad de propósitos.
El siguiente fragmento accede como usuario invitado para tu prueba. Es importante asegurarte de que tu función funcione en modo Incógnito.
class MyGuestBrowserTestClass : public MixinBasedInProcessBrowserTest { private: GuestSessionMixin guest_session_mixin_{&mixin_host_}; };
LoggedInUserMixin
es una forma conveniente de acceder como usuario de Family Link para
la prueba. Si tu función afecta a algo relacionado con la supervisión infantil,
debes probar tu función para usuarios supervisados. Un posible error es
olvidar que los usuarios menores de edad tienen inhabilitado el modo Incógnito o no pueden instalarlo
extensiones sin la aprobación de los padres. LoggedInUserMixin
es una mezcla compuesta
compuesto por otras combinaciones.
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}; };
Uno de los beneficios principales de las combinaciones es usar la composición en lugar de
y cómo evitar problemas con la herencia múltiple de diamante.
Heredar de más de una clase de base de prueba genera el problema de los diamantes,
pero puedes combinar combinaciones
y evitar este problema. Usa combinaciones
la herencia no se deshace por completo porque la clase de prueba del navegador aún
debe heredar de MixinBasedInProcessBrowserTest
, pero, afortunadamente,
la clase base es de uso general y liviana.