[JAVA] Introduction à JUnit (note d'étude)

Qu'est-ce qu'un test unitaire?

Un test pour vous assurer que le code que vous écrivez fonctionne comme prévu. Aussi appelé test unitaire. JUnit est un framework très connu pour les tests unitaires en Java. L'écriture de programmes de test à l'aide d'un cadre commun permet aux autres de modifier plus facilement leurs programmes de test.

Flux de tests super basique

    1. Écrivez une méthode de test qui a la même fonction que la méthode à tester.
  1. Comparez le résultat requis pour la méthode avec le résultat réel en utilisant la méthode assert (ci-dessous).
    1. S'il y a une différence dans les résultats de la comparaison, le test échoue, sinon le test réussit.

Configuration (à l'aide d'IntelliJ)

https://stackoverflow.com/questions/19330832/setting-up-junit-with-intellij-idea https://www.slideshare.net/SatoshiKubo1/junitjava

type de méthode d'assertion

Diverses affirmations sont utilisées pour confirmer les résultats des tests. assertEquals() → Déterminez si le résultat attendu est le même que le résultat réel. Argument 1: (attendu, réel) Argument 2: (Message de chaîne, attendu, réel) --Un message s'affiche si le test échoue. Argument 3: (attendu, réel, delta) --delta est la tolérance. Argument 4: (Message de chaîne, double attendu, double réel, double delta) - assertNotNull() → Jugez si l'objet donné n'est pas nul. Argument 1: (objet objet) Argument 2: (message chaîne, objet objet) -Un message s'affiche si le test échoue. assertNull() → Jugez si l'objet donné est nul. Argument 1: (objet objet) Argument 2: (message chaîne, objet objet) -Un message s'affiche si le test échoue. assertSame() → Jugez si les deux objets donnés font référence au même objet. Argument 1: (objet attendu, objet réel) Argument 2: (message chaîne, objet objet) -Un message s'affiche si le test échoue. assertTrue() → Jugez si les conditions données sont correctes. Argument 1: (objet attendu, objet réel) Argument 2: (message chaîne, objet objet) -Un message s'affiche si le test échoue. assertThat() En combinaison avec Matcher, c'est plus pratique que assertEquals (). Il y a une limite à assertEquals () car un seul equals () peut être créé dans un objet. Puisque c'est Matcher, pas assertThat, qui est vérifié, il est hautement extensible. La situation d'écriture d'assert Equals sur plusieurs lignes ne se produit plus. Arguments: (Object actual, Matcher matcher) Détails

point important

L'ordre n'a pas d'importance

Les méthodes de la classe de test ne sont pas exécutées dans l'ordre à partir du haut. Par conséquent, n'écrivez pas de méthodes de test qui supposent les résultats de test ci-dessus.

Ne crée pas d'effets secondaires

Ne créez pas d '"effets secondaires" qui modifient l'état du système, comme la mise à jour de la base de données lors du test.

Donnez un nom de méthode descriptif

Pour que ceux qui liront le code plus tard puissent comprendre rapidement le but du test.

Écrivez du code facile à comprendre

Comme ci-dessus. Simple et facile à comprendre sans gaspillage.

Documentez le plan de test dans javadoc

Ecrire manuellement + de nombreuses erreurs + difficile de suivre les mises à jour.

Aussi petit et rapide que possible

Pour pouvoir tester fréquemment et facilement.

Autres méthodes utiles

Si vous souhaitez effectuer un traitement commun (connexion / déconnexion de la base de données, etc.) au début et à la fin de plusieurs méthodes, utilisez les méthodes setUp () et tearDown (). setUp() Exécuté avant l'appel de chaque méthode de test. tearDown() Exécuté après la fin de chaque méthode de test.

Classe TestSuite

Comme mentionné ci-dessus, les méthodes de test ne sont pas exécutées dans l'ordre dans lequel elles sont écrites, mais vous pouvez utiliser la classe TestSuite pour spécifier l'ordre dans lequel les méthodes de test sont exécutées.

Source de référence

Recommended Posts

Introduction à JUnit (note d'étude)
Introduction à Ruby 2
Introduction à web3j
Introduction à Micronaut 1 ~ Introduction ~
[Java] Introduction à Java
Introduction à la migration
Introduction à Java
Introduction à Doma
Notes d'utilisation de JUnit5
Introduction aux fichiers JAR
Introduction à Ratpack (8) - Session
Migrer de JUnit 4 vers JUnit 5
Introduction à l'arithmétique des bits
Introduction à Ratpack (6) - Promesse
Introduction à Ratpack (9) --Thymeleaf
Introduction à PlayFramework 2.7 ① Présentation
Introduction à la mise en page Android
Introduction aux modèles de conception (introduction)
Note d'étude d'installation de points 01
Introduction à la programmation pratique
Introduction à la commande javadoc
Introduction à la commande jar
Introduction à Ratpack (2) -Architecture
Introduction au style lambda
Introduction à la commande java
Introduction au développement de Keycloak
Introduction à la commande javac
[Mémo personnel] J'ai essayé d'étudier légèrement l'orientation des objets
Introduction aux modèles de conception (Builder)
Base de données de mémos d'étude Play Framework ①
Introduction au développement d'applications Android
Introduction à Ratpack (5) --Json & Registry
Comment utiliser JUnit (débutant)
Introduction à Ratpack (7) --Guice & Spring
(Installation par points) Introduction à Java8_Impression
Introduction aux modèles de conception (composite)
Introduction à Micronaut 2 ~ Test unitaire ~
Introduction à Spring Boot ① ~ DI ~
Introduction aux modèles de conception (poids mouche)
[Java] Introduction à l'expression lambda
Introduction à Spring Boot ② ~ AOP ~
Introduction à Apache Beam (2) ~ ParDo ~
Introduction à l'API EHRbase 2-REST
Introduction au prototype de modèles de conception
Mémo d'étude Java 2 avec Progate
Comment écrire Junit 5 organisé