[JAVA] Comment écrire Junit 5 organisé

Je vais transcrire comment écrire le cours de test Junit 5 que j'ai pratiqué dans le passé sous forme de mémorandum. J'espère que cela sera utile à tout le monde.

Stockage de classe de test

Tout d'abord, l'endroit où mettre la classe de test. スクリーンショット 2019-12-01 12.36.08.png

Séparez la classe de test de la classe de produit et du dossier. Lors de l'utilisation de Gradle, src / test / java est le dossier standard.

nom du paquet

Évitez les noms de package de classe de test qui sont identiques aux classes de produit. Cependant, je veux vraiment le lier à la classe de test. Donc, je pense que vous n'avez pas à utiliser la forme "test + nom du package à tester".

La raison pour laquelle le nom du package est différent est que lors de l'utilisation de Spring, Il s'agit d'une contre-mesure telle que la duplication DI dans la classe de test. (Sûr) Avec le même nom de package, je ne pouvais pas DI le dossier de test et DI pour la classe que je voulais tester, donc Il est conçu de manière à pouvoir être distingué du début du nom du package.

nom de la classe

N'utilisez pas cela aussi, utilisons "nom de classe à tester + Test". Si le nom de la classe est le même, ce sera ennuyeux lors de la complémentation.

Comment rédiger un test

Classe testée

Greeting.java


public class Greeting {
  
  public String hello() {    
    return "Hello";
  }
  
  public String helloWorld() {
    return "Hello World";
  }
}

Classe d'essai

GreetingTest.java


class GreetingTest {

  @Nested
  @DisplayName("method : hello")
  public class Hello {

    private Greeting test = new Greeting();

    @Test
    @DisplayName("Cas de test qui fonctionne normalement")
    public void case1() {
      Assertions.assertEquals("Hello", test.hello());
    }
  }
  
  @Nested
  @DisplayName("method : helloWorld")
  public class HelloWold {
    
    private Greeting test = new Greeting();
    
    @Test
    @DisplayName("Cas de test qui fonctionne normalement")
    public void case1() {
      Assertions.assertEquals("Hello World", test.helloWorld());
    }
    
  }
}

Modificateur de classe

Il est prudent de ne rien attacher. Si vous ajoutez quelque chose comme public, il sera affiché en complément, il est donc difficile à voir.

Classes séparées pour chaque méthode

La classe de test est divisée en classes de test pour chaque méthode pour une visualisation facile. Ce formulaire facilite l'ajout de cas de test lors de l'ajout de cas de test.

Le nom de la classe interne est facile à comprendre le nom de la méthode.

Dessinez fermement un cas de test avec le nom d'affichage

D'après mon expérience, le nom de la méthode du scénario de test peut être plus long ou plus approprié. C'est terriblement difficile à lire. Par conséquent, si vous souhaitez donner un nom de méthode long, utilisez fermement DisplayName. Écrivons le contenu du test.

Échantillon de confirmation du résultat du test Eclipse

Si vous écrivez Affichage, il sera reflété sur l'écran de couverture, il sera donc plus facile à comprendre. スクリーンショット 2019-12-01 12.57.44.png

Résumé

Le contenu de la classe de test est important, mais il est également important de l'écrire de la même manière. En écrivant de manière formelle, écrivons une classe de test qui est facile à changer non seulement pendant le développement mais aussi pendant la maintenance.

Recommended Posts

Comment écrire Junit 5 organisé
Comment écrire des rails
Comment écrire docker-compose
Comment écrire Mockito
Comment écrire un fichier de migration
JUnit 5: Comment écrire des cas de test dans enum
Comment utiliser JUnit (débutant)
Comment rédiger un commentaire java
[Refactoring] Comment écrire le routage
Comment écrire des graines de Rails
Comment écrire le routage Rails
[Création] Comment utiliser JUnit
Comment exécuter JUnit dans Eclipse
Étudier Java # 6 (Comment écrire des blocs)
[Rails] Comment écrire la gestion des exceptions?
Comment écrire une déclaration de variable Java
Comment rédiger un code facile à comprendre [Résumé 3]
Comment filtrer JUnit Test dans Gradle
[Basique] Comment écrire un auto-apprentissage Dockerfile ②
Résumé de l'écriture des arguments d'annotation
[Introduction à Java] Comment écrire un programme Java
[Java] Comment sortir et écrire des fichiers!
Comment fixer la date système dans JUnit
Comment tester l'étendue privée avec JUnit
Comment écrire un spécificateur de coupe de point Spring AOP
[SpringBoot] Comment écrire un test de contrôleur
Promesse JDBC et exemple d'écriture
Rails: comment bien écrire une tâche de râteau
[Java] Comment tester s'il est nul dans JUnit
[Java FX] Comment écrire des autorisations Eclipse dans build.gradle
[Rails] Comment écrire lors de la création d'une sous-requête
Comment exécuter une méthode et simuler avec JUnit
Comment tester les interruptions pendant Thread.sleep avec JUnit
Comment écrire une instruction if pour améliorer la lisibilité-java
Notes sur l'utilisation de chaque règle de JUnit
Exemple d'implémentation de F06 d'écriture en temps réel hors ligne
Comment écrire du code qui pense Ruby orienté objet
Comment écrire du code de test avec la certification de base
Comment écrire React Native Bridge ~ Version Android ~
[Java] Mémo sur la façon d'écrire la source
Comment écrire Java String # getBytes dans Kotlin?
Notes sur la façon de rédiger des commentaires en anglais
Comment développer OpenSPIFe
Comment appeler AmazonSQSAsync
Comment utiliser rbenv