[JAVA] Faites un test unitaire avec Junit.

environnement

・ Windows10 ・ Jdk 1.8.0_201 ・ Version Eclipse: 2018-12 (4.10.0) ・ Junit_4.12.0

Cible

Être capable d'exécuter des tests unitaires pour les classes créées avec java.

Qu'est-ce que Junit

Pour la classe créée dans la version Java du framework de test appelé xUnit Vous pouvez tester l'opération en appelant la méthode de la classe testée à partir du code Junit créé.

Étant donné que le code de test créé une fois peut être réutilisé, par rapport à la méthode de création de code de test à chaque fois Le nombre d'étapes de test peut être réduit.

Précautions pour les tests avec Junit

  1. Doit être une méthode publique.
  2. La valeur de retour est nulle.
  3. N'a aucun argument.
  4. Ajoutez l'annotation org.junit.Test à la méthode de test.

Créez une classe à tester.

Cette fois, j'ai créé une classe Calculator.java qui effectue la multiplication et la division.

Calculator.java


package junit.tutorial;

public class Calculator {

	/**
	 *Renvoie le résultat de la multiplication de x et y
	 * @param x
	 * @param y
	 * @return Renvoie le résultat de la multiplication de x et y
	 */
	public int maltiplication(int x,int y) {
		return x * y;
	}

	/**
	 *Renvoie le résultat de la division de x et y
	 * @param x
	 * @param y
	 * @return Renvoie le résultat de la division de x et y
	 */
	public int division(int x,int y) {
		return x / y;
	}
}

Créez un code de test.

Ensuite, créez une classe de test. Si vous créez une nouvelle classe, entrez test puis ctrl + espace Eclipse Content Assist démarre, alors sélectionnez le modèle pour Junit 4 Vous pouvez facilement créer une méthode.

Tout d'abord, créez une classe de test Classe CalculatorTest sans rien dedans.

CalculatorTest.java


package junit.tutorial;

public class CalculatorTest {
}

Insérez la méthode de modèle ici en utilisant l'assistance de contenu ci-dessus.

CalculatorTest.java


package junit.tutorial;

import static org.junit.Assert.*;

import org.junit.Test;

public class CalculatorTest {
	@Test
	public void testName() throws Exception {
		
	}
}

Décrivez dans le code de test.

Cette fois, nous allons créer le code de test comme suit. Enfin, en confirmant le résultat de 3, on peut juger si le test a fonctionné comme prévu.

  1. Définissez la valeur d'entrée utilisée dans la méthode.
  2. Définissez la valeur attendue de la valeur de retour de la méthode.
  3. Affirmez la valeur attendue et la valeur mesurée, qui est la valeur de retour de 1.

Complétez le code de test.

Complétez le code de test immédiatement. Le nom de la méthode est japonais. Cela vous permet de voir en un coup d'œil ce que le résultat de l'exécution a vérifié.

Calculator.java


package junit.tutorial;

import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;

import org.junit.Test;

public class CalculatorTest {

	@Test
Vous pouvez obtenir le résultat de multiplication de 5 et 2 avec la maltiplication de vide public() throws Exception {
		Calculator sut = new Calculator();
		int expected = 10;
		int actual = sut.maltiplication(5, 2);
		assertThat(actual,is(expected));
	}

	@Test
Vous pouvez obtenir le résultat de la division de 5 et 8 par division du vide public() throws Exception {
		Calculator sut = new Calculator();
		int expected = 
		
	}
}

Lors de la définition de la valeur attendue du code de test, je remarque que la valeur de retour n'est pas bonne en raison de la division avec int. En réponse à ce fait, la classe testée est modifiée.

Calculator.java


package junit.tutorial;

public class Calculator {

	/**
	 *Renvoie le résultat de la multiplication de x et y
	 * @param x
	 * @param y
	 * @return Renvoie le résultat de la multiplication de x et y
	 */
	public int maltiplication(int x,int y) {
		return x * y;
	}

	/**
	 *Renvoie le résultat de la division de x et y
	 * @param x
	 * @param y
	 * @return Renvoie le résultat de la division de x et y
	 */
	public float division(int x,int y) {
		return (float)x / (float)y;
	}
}

J'ai défini le type de retour sur float et j'ai converti la valeur de retour. Revenons maintenant à la création de code de test.

CalculatorTest.java


package junit.tutorial;

import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;

import org.junit.Test;

public class CalculatorTest {

	@Test
Vous pouvez obtenir le résultat de multiplication de 5 et 2 avec la maltiplication de vide public() throws Exception {
		Calculator sut = new Calculator();
		int expected = 10;
		int actual = sut.maltiplication(5, 2);
		assertThat(actual,is(expected));
	}

	@Test
Vous pouvez obtenir le résultat de la division de 5 et 8 par division du vide public() throws Exception {
		Calculator sut = new Calculator();
		float expected = 0.625f;
		float actual =  sut.division(5, 8);
		assertThat(actual,is(expected));

	}
}

Vous pouvez maintenant exécuter le test. Maintenant, exécutons un test en tant que Junit dans Eclipse et vérifions le résultat.

image1.png

-Tous les indicateurs sont verts sur l'écran. -Le résultat de l'exécution doit être complété en 2/2.

À partir des résultats ci-dessus, il a été constaté que la méthode fonctionnait comme prévu.

C'est le fonctionnement de base de Junit.

Je souhaite étudier les grandes lignes du test avec Junit.

Les références

[Introduction à la pratique JUnit ── Technique de test unitaire d'apprentissage systématique WEB + DB PRESS plus] https://www.amazon.co.jp/dp/B07JL78S95/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

Recommended Posts

Faites un test unitaire avec Junit.
Tester l'API Web avec junit
Test unitaire de l'API Web et test d'intégration avec SpringBoot + Junit5, 4 modèles
[Java] Tester des méthodes privées avec JUnit
Contrôleur de cadre de test Spring avec Junit
[rails] Faisons un test unitaire avec Rspec!
Ordre du prétraitement et du post-traitement du test unitaire JUnit
Le test JUnit 5 Gradle génère une erreur avec l'annotation Lombok
Présentation du test Java automatisé avec JUnit 5 + Gradle
[Java] Comment tester s'il est nul dans JUnit
[CircleCI 2.0] [Java] [Maven] [JUnit] Agréger les résultats des tests JUnit avec CircleCI 2.0
Test d'intégration avec Gradle
Comment tester les interruptions pendant Thread.sleep avec JUnit
Test JUnit facile de la version Elasticsearch 2018 avec Embedded-elasticsearch
Échantillon de bibliothèque de tests unitaires Java
[Rails] Test avec RSpec
Tester le code à l'aide d'une maquette avec JUnit (centre EasyMock)
Tester automatiquement avec la jauge
Test de charge avec JMeter
Mélanger les cas de test avec JUnit 5 et les méthodes par défaut
Comment faire un test unitaire avec JVM sur une source à l'aide de RxAndroid
Tester le contenu d'un fichier Excel avec JUnit
[Compatible JUnit 5] Ecrire un test en utilisant JUnit 5 avec Spring boot 2.2, 2.3
[JUnit 5] Ecrivez un test de validation avec Spring Boot! [Test de paramétrage]
J'ai écrit un test avec Spring Boot + JUnit 5 maintenant
[Java] Exemple de cas de test JUnit 4
JUnit 5 échoue avec java.lang.NoSuchMethodError: org.junit.platform.launcher.Launcher.execute
[IntelliJ IDEA] Effectuer un test d'unité
Tester Active Strage avec RSpec
Introduction à Micronaut 2 ~ Test unitaire ~
Test unitaire d'architecture avec ArchUnit
Tester le résolveur GraphQL avec rspec
Tester les méthodes privées dans JUnit
[JUnit] Tester l'exception levée
Test unitaire Java avec Mockito
Utilisez Spring Test + Mockito + JUnit 4 pour le test unitaire Spring Boot + Spring Retry
[Java] Je souhaite tester l'entrée standard et la sortie standard avec JUnit
tester
Comment faire un test unitaire de Spring AOP
[Critique de livre] Test unitaire sur le site de programmation qui peut être réalisé sans aucune expérience (suite 1-JUnit-)
Test de l'API REST à l'aide de REST Assured Part 2
Le test de paramétrage JUnit 5 est super pratique
tester
Couverture de test de sortie avec Clover + Gradle
Exemple de code pour le test unitaire d'un contrôleur Spring Boot avec MockMvc
[Rails5] Rspec -Test d'unité lors de l'imbrication-
tester
À propos du test d'application RSpec (test unitaire)
tester
Junit
Sortie du rapport de test JUnit dans Maven
Importance de l'existence d'un test unitaire (auto-discussion)
Copier et coller le test avec RSpec
Équivalence bibliothèque de tests unitaires Java-Artery / JUnit4-Array
Tester les relations d'inclusion de liste avec AssertJ
[RSpec] Test unitaire (avec gem: factory_bot)
Comment tester une méthode privée qui prend un tableau ou un argument de longueur variable dans JUnit