Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso Básico de Testing en Java

Curso Básico de Testing en Java

Ferran Maylinch Carrasco

Ferran Maylinch Carrasco

Organización de tests con JUnit

7/24
Recursos

La forma correcta de separar nuestras pruebas es realizar cada una en su propia función, además, el nombre de la función debe describir que estamos probando.

Para indicarle a JUnit que esperamos una excepción lo debemos hacer de la siguiente forma:

@Test(expected = IllegalArgumentException.class)

Aportes 20

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

El equivalente a la definicion del metodo repeat_string_negative_times en jUnit5 es de la siguiente manera, usando el metodo estatico asser throws, con 2 parametros.

  1. La clase de la excepcion que se espera lanzar
  2. Una declaracion de lambda funcion que es executable para ejecutar el metodo
@Test
public void repeat_string_negative_times() {
    assertThrows(IllegalArgumentException.class, () -> {
        StringUtil.repeat("hola", -1);
    });
}

Hola Ferran,
Cuál es el estandar que se debe usar para nombrar los métodos de los test, lo pregunto especialmente porque no estás usando la convención camel case.

Gracias.

Se acabaron mis dias de probar cosas con System.out.println

Se deben de colocar una método de test, por cada escenario que se desea probar, para mantener la independencia de cada prueba.
El nombre los métodos debe ser muy descriptivo, para indicar que se espera del test.

  • Valida_cero_repeticiones
  • Valida_negativos
    Si se requiere probar el que un método valide una excepción en específico, se debe colocar esta excepción en el decorador del Test, indica que el método debe de lanzar la excepción de ese tipo.
    @Test(expected = IllegalArgumentsException::Class)

Dios era algo tan simple que en la Universidad lo hacían de una manera tan difícil.

En lugar de poner if por todos lados deberías usar assert para controlar casos de excepción.

Notas: los nombres de los métodos de test deben de ser bastante descriptivos para saber que hacen específicamente y hacer varios para probar una misma funcionalidad para hacer la prueba de varios casos donde posiblemente podría fallar

Dejo mi aporte

class StringUtilTest {
    @Test
    void repeatStringPositiveTimes() {
        assertEquals("HelloHelloHelloHelloHello", StringUtil.repeat("Hello", 5));
    }

    @Test
    void repeatStringZeroTimes() {
        assertEquals("", StringUtil.repeat("Hello", 0));
    }

    @Test
    void repeatStringNegativeTimes() {
        assertThrows(IllegalArgumentException.class, () -> StringUtil.repeat("Hello", -10));
    }
}

Los test para comportamientos inesperados, corrección de clases.

Graacias

Aca una pagina que tiene un poco de los estandares que se manejan

Justo lo que estaba buscando.

Genial 😃

excelente

Que bien que queda distribuida cada prueba en su propia función y con un nombre que ayuda a entender que trata de probar. Gracias por la clase instructor Ferran.

Muy bueno, genial.

Al hacer nuestros tests debemos de tomar en cuenta todos los posibles que casos que pasan?

Me sale este mensaje al darle RUN, alguien sabe porque?

Error: no se ha encontrado el método principal en la clase com.platzi.javatests.util.StringUtilTest, defina el método principal del siguiente modo:\n public static void main(String[] args)\nde lo contrario, se deberá ampliar una clase de aplicación JavaFX javafx.application.Application

Era muy tedioso correr el programa para probar cada posibilidad, con esta herramienta será más fácil y rápido