[JAVA] Tester les méthodes privées dans JUnit

Contexte

Quand je regardais le code de test écrit dans JUnit aujourd'hui, le test de la méthode privée n'était pas écrit. J'ai créé un échantillon qui appelle une méthode privée, alors j'ai pensé le poster.

Postscript Pour plus de détails, veuillez vous référer au commentaire de @ Kilisame, mais ce n'est pas un article qui dit que je l'ai testé car j'ai oublié de tester privé. Il est difficile de dire que le test public de l'appelant ne peut pas être fait ... (j'aimerais que vous compreniez), alors je l'ai écrit parce que je voulais au moins faire un test privé.

code

import static org.junit.Assert.*;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import org.junit.Test;

/**Exemple de classe*/
public class private_Test {

	public class Sample{
		private int fuge(int i) {
			return i;
		}
	}
	
	@Test
	public void test() {
		
		Sample sample = new Sample();
		try {
			Method method = Sample.class.getDeclaredMethod("fuge", int.class);
			method.setAccessible(true);
			int rtn = (int)method.invoke(sample, 2);
			assertEquals(2,rtn);
			
		} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
			//Bloc de capture généré automatiquement TODO
			e.printStackTrace();
		}
	}

}

Vous pouvez obtenir la méthode avec la méthode getDeclaredMethod (), autoriser l'accès externe avec setAccessible (true) et l'exécuter avec method.invoke ().

Recommended Posts

Tester les méthodes privées dans JUnit
Tester les méthodes privées dans JUnit
[Java] Tester des méthodes privées avec JUnit
À propos des méthodes de validation dans JUnit
Comment tester une méthode privée qui prend un tableau ou un argument de longueur variable dans JUnit
Si vous souhaitez satisfaire la couverture de test des méthodes privées dans JUnit
Sortie du rapport de test JUnit dans Maven
Points à garder à l'esprit lors du test de méthodes privées dans JUnit
Comment filtrer JUnit Test dans Gradle
Contrôler l'ordre de test dans Junit4 avec un type d'énumération
Refactoring dans JUnit
Comment tester l'étendue privée avec JUnit
JUnit 5: Comment écrire des cas de test dans enum
Visualisez la méthode de test en cours d'exécution dans TestNG dans l'écouteur
Mélanger les cas de test avec JUnit 5 et les méthodes par défaut
Lancement du test JUnit essayez quelque chose
Faites un test unitaire avec Junit.
Obtenez le nom du scénario de test dans la classe de test JUnit
Implémenter le test double dans JUnit sans utiliser de bibliothèques externes
[Java] Exemple de cas de test JUnit 4
Tester l'API Web avec junit
Méthodes d'assistance disponibles dans la devise
Vérifier la méthode privée de l'interface Java9
[JUnit] Tester l'exception levée
Méthodes statiques simulées dans Mockito 3.4
[Spring Boot] Jusqu'à ce que @Autowired soit exécuté dans la classe de test [JUnit5]
Implémenter un test piloté par table dans Java 14
À propos des méthodes fréquemment utilisées dans la conception
Comment exécuter JUnit dans Eclipse
Écrire du code de test avec Spring Boot
Le test de paramétrage JUnit 5 est super pratique
Différences dans les méthodes de fractionnement de StringUtils
Test API souvent utilisé dans AssertJ
Méthodes fréquemment utilisées dans Active Record
Quelles sont les règles de JUnit?
Contrôleur de cadre de test Spring avec Junit
Méthodes Ruby souvent utilisées dans Rails
Comment tester une méthode privée et la simuler partiellement en Java