Afirmar un valor opcional en Java

Afirmar un valor opcional en Java

En este artículo, vamos a aprender cómo afirmar Opcional en Java utilizando las bibliotecas de afirmación JUnit 5 y AssertJ.

Índice
  1. Conocimiento
  2. Afirmar Opcional
    1. junio 5
    2. aserJ

Conocimiento

Por lo general, escribimos una prueba unitaria para verificar el resultado esperado de un método. Cuando un método devuelve un objeto Opcional, necesitamos escribir casos de prueba para verificar si el Opcional está presente, vacío o tiene un valor esperado. Podemos hacer esto usando las bibliotecas Junit 5 y AssertJ.

Afirmar Opcional

Veamos ejemplos rápidos para escribir casos de prueba para devolver un objeto opcional usando las bibliotecas Junit 5 y AssertJ.

junio 5

JUnit 5 no brinda un gran soporte para Opcional como la biblioteca AssertJ, aunque logramos hacer todas las afirmaciones Opcionales básicas en los ejemplos a continuación:

  1. Pruebe que un valor está presente en Opcional: -

    Optional<String> optional = Optional.of("foo");
    assertTrue(optional.isPresent()); // pass
    
  2. Pruebe que un valor no está presente o vacío en Opcional: -

    Optional<String> optional = Optional.empty();
    assertFalse(optional.isPresent()); // pass
    
  3. Pruebe una cadena opcional: -

    Optional<String> optional = Optional.of("foo");
    assertTrue(optional.isPresent());
    assertEquals("foo", optional.get());
    
  4. Pruebe un objeto opcional que tenga varias propiedades: -

    Optional<User> userOptional = Optional.of(new User("Jack", 21, true));
    assertTrue(userOptional.isPresent());
    userOptional.ifPresent(user -> {
      assertEquals("Jack", user.getFirstName());
      assertTrue(user.getAge() > 18);
      assertTrue(user.getIsPremiumUser());
    });
    

    Tenga en cuenta que Junit 5 no proporciona ninguna afirmación para probar múltiples propiedades de un objeto opcional, por lo que usamos Optional.ifPresent() afirmar todas las propiedades.

aserJ

AssertJ tiene un buen soporte para objetos opcionales y proporciona muchas aserciones específicas opcionales fluidas. Veamos los ejemplos a continuación:

  1. Pruebe que un valor está presente en Opcional: -

    Optional<String> optional = Optional.of("foo");
    assertThat(optional).isPresent(); // pass
    assertThat(optional).isNotEmpty(); // pass
    

    Tenga en cuenta que isPresent() Y isNotEmpty() son alias y se pueden usar indistintamente.

  2. Pruebe que un valor no está presente o vacío en Opcional: -

    Optional<String> optional = Optional.empty();
    assertThat(optional).isEmpty(); // pass
    assertThat(optional).isNotPresent(); // pass
    

    Tenga en cuenta que isEmpty() Y isNotPresent() son alias y cualquiera puede usarse indistintamente.

  3. Pruebe una cadena opcional: -

    Optional<String> optional = Optional.of("foo");
    assertThat(optional)
            .isPresent()
            .isNotEmpty()
            .containsInstanceOf(String.class)
            .hasValue("foo")
            .contains("foo");
    

    Tenga en cuenta que hasValue() Y contains() son alias y cualquiera puede usarse indistintamente.

  4. Pruebe un objeto opcional que tenga varias propiedades: -

    Optional<User> userOptional = Optional.of(new User("Jack", 21, true));
    assertThat(userOptional)
            .isPresent()
            .isNotEmpty()
            .containsInstanceOf(User.class)
            .hasValueSatisfying(user -> {
                assertThat(user.getFirstName()).isEqualTo("Jack");
                assertThat(user.getAge()).isGreaterThan(18);
                assertThat(user.getIsPremiumUser()).isTrue();
            });
    

    Probamos todas las propiedades de un objeto opcional usando hasValueSatisfying() en el ejemplo anterior.

Si quieres conocer otros artículos parecidos a Afirmar un valor opcional en Java puedes visitar la categoría Tutoriales.

Deja un comentario

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

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas