anomalies des tests JUnit

anomalies des tests JUnit

  1. écriture ancienne
    @Test
    void name() {
        boolean hasException = false;
        String exceptionMessage = null;
        try {
            check();
        } catch (RuntimeException e) {
            hasException = true;
            exceptionMessage = e.getMessage();
        }
        assertEquals("runtime", exceptionMessage);
        assertTrue(hasException);
    }

    void check() {
        throw new RuntimeException("runtime");
    }
  1. Longhand (faillible)
    la vérification et le type d'exception du message
   @Test
   void name() {
      assertThrows(RuntimeException.class, () -> check(), "aaa");
   }

   void check() {
       throw new RuntimeException("runtime");
   }

Ce test nous avons constaté que message de test anormal , mais pas en mesure de vivre.
Pa Pa source

Constaté que message de test réellement la consommation ne sont pas nouvelles inhabituelle, mais l'exception ne devrait, et il n'y a pas de défaut à la consommation.
2.1 longhand

   @Test
    void name() {
        final RuntimeException runtimeException = assertThrows(RuntimeException.class, () -> check());
        assertEquals("runtime", runtimeException.getMessage());
    }

    void check() {
        throw new RuntimeException("runtime");
    }

3. l'écriture en streaming

     @Test
    void name() {
        assertThatThrownBy(() -> check())
            .isInstanceOf(RuntimeException.class)
            .hasMessage("runtime");
    }

    void check() {
        throw new RuntimeException("runtime");
    }

Personnellement, je pense que le libellé de l'intensité du courant du ressort des plus élégants.

Je suppose que tu aimes

Origine www.cnblogs.com/qulianqing/p/12622891.html
conseillé
Classement