La Red de Conocimientos Pedagógicos - Currículum vitae - Prueba unitaria de Android, parte 3 (excepción, prueba de tiempo de espera)

Prueba unitaria de Android, parte 3 (excepción, prueba de tiempo de espera)

Al observar la definición de la anotación @Test, podemos ver que puede recibir dos parámetros

Entonces podemos agregar los parámetros correspondientes al método a probar, de la siguiente manera

Hay un problema con el método anterior al pasar parámetros @Test, es decir, las reglas de coincidencia de excepciones generadas son demasiado únicas. Si encuentra varias excepciones que pueden generarse en un método, entonces este método funcionará. . Necesitamos una forma más flexible, preferiblemente utilizando pruebas parametrizadas para especificar diferentes excepciones para diferentes casos de prueba. En este momento, es el turno de aparecer ExpectedException.

Los pasos de implementación son los siguientes

Si desea implementar diferentes casos de prueba para generar diferentes excepciones, solo necesita extraer los tipos de excepción codificados en los métodos de prueba anteriores. como campos de clase y parametrizarlos. El método de prueba construye múltiples conjuntos de casos de prueba. Cada conjunto de casos de prueba solo necesita contener un tipo de excepción específico. También puede agregar información de excepción detallada.

Tenga en cuenta que configurar información de excepción a través de TestRule y usar @Test no se puede aplicar a un método de prueba al mismo tiempo; de lo contrario, se generará una excepción.

En cuanto al tiempo de espera, si necesitamos limitar todos los métodos de prueba a la misma especificación de tiempo, entonces no necesitamos agregar un límite de tiempo de espera a @Test de cada método de prueba, pero podemos pasar TestRule. El método se establece de manera uniforme.

Agregue los siguientes campos a la clase de prueba:

De manera similar, si los tiempos de espera de diferentes casos de prueba son diferentes, también puede extraer el tiempo de configuración como un campo y usar pruebas parametrizadas. Proporciona múltiples conjuntos de casos de prueba.

Tenga en cuenta que si utiliza el método TestRule y el método de tiempo de espera en @Test, el primero sobrescribirá el último, pero no se generará ninguna excepción.

Entonces no hay forma de usar TestRule para implementar 10 tiempos de espera de método de 1000 milisegundos y usar @Test para implementar 1 tiempo de espera de método de 2000 milisegundos. Por supuesto, puede deberse a mi postura. Estoy equivocado, cualquiera que sepa puede corregirme.