Generalidades

Simulacros de prueba de unidad de extracción en Android por Joao Foltran | Ene 2022

La idea aquí es Toneladao Probando una sola clase de una aplicación Android, pero el problema es que para que funcione una sola clase normalmente necesitamos otras clases. Por ejemplo, en una aplicación de Android que sigue la arquitectura MVVM, podemos probar una clase ViewModel que depende de la clase UseCase.

Si necesita un repaso de los patrones arquitectónicos de Android, documentación androide es un gran recurso.

Para hacer las cosas más concretas, digamos que estamos probando una función simple de nuestra aplicación: ver modelo solicitar un mensaje Ejemplo y actualizar su estado con un mensaje.Deseamos probar si actualizar el estado del mensaje () Funcionalmente actualizado estado del mensaje.

Esencialmente, solo hay dos pasos para probar una función.

  1. Active la función que desea probar. Por ejemplo, cuando probamos una función, primero llamamos a la función. Cuando se crea el objeto de prueba, primero llamamos a su constructor.
  2. Verifique sus resultados. Por ejemplo, verificamos que una función devuelva el valor correcto o que actualice correctamente el estado dado.

Sin embargo, en la mayoría de los casos, el primer paso depende de otros factores.Por ejemplo, en nuestro caso, la activación actualizar el estado del mensaje () Dependiendo de Ejemplo de caso de uso clase.Por supuesto, podemos simplemente instanciar nuestro Ejemplo de caso de uso class y usarlo en nuestras pruebas de esta manera:

Pero este método de instanciar explícitamente las dependencias existentes se vuelve muy complicado y muy rápido, principalmente por las siguientes razones:

Una dependencia tiene sus propias otras dependencias. En nuestro caso, UseCase podría depender de la clase Repositorio. Si tuviéramos que inicializar explícitamente nuestro UseCase, tendríamos que hacer lo mismo para cada dependencia posterior.

Las dependencias pueden ser externas. Nuestro UseCase podría recuperar mensajes de un repositorio, que luego se conectaría a la API. Activar nuestra API para cada prueba unitaria que deseamos ejecutar sería muy costoso.

Las dependencias pueden requerir una configuración compleja. Nuestra dependencia puede recuperar algunos datos de recursos que dependen de la configuración del dispositivo. Configurarlo manualmente para cada prueba puede ser muy complicado.

En lugar de inicializar explícitamente las dependencias que tiene la clase que estamos probando, nos burlamos de ellas para evitar las trampas mencionadas anteriormente. en breve,

La burla es el proceso de crear objetos que imitan el comportamiento de los objetos reales. Este concepto también se puede aplicar a la simulación de funciones y clases.

En el mundo de Kotlin, una muy buena biblioteca para simular cosas es Burlarse deUsando Mockk, agregamos un paso previo al proceso de prueba unitaria.

0. Simular dependencias y comportamientos. En nuestro caso esto significa burlarse Ejemplo de caso de uso clase y burlarse de su comportamiento obtener mensaje () método.

  1. Active la función que desea probar…
  2. Verifica sus resultados…

Usando Mockk, esto se ve así:

¡Gracias por leer! Con suerte, puede comprender mejor por qué la simulación es crucial para las pruebas unitarias.Si tiene curiosidad acerca de los otros métodos y anotaciones que proporciona Mockk, debe consultar su documento¡Ahora adelante y empieza a reírte!

LEER  El dispositivo de transmisión Onn FHD de Walmart es como un Chromecast más barato

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba