[JAVA] Comment définir quand "Le constructeur Empty () n'est pas visible" se produit dans junit

Résumé de cet article

Quand j'ai utilisé junit avec eclipse, j'ai eu un peu de mal, donc je vais décrire la méthode de réglage comme un mémorandum. Plus précisément, l'erreur suivante peut se produire lorsque la classe cible de test a un constructeur privé, la solution de contournement est donc décrite.

The constructor Empty() is not visible

référence

Comment tester la méthode privée dans Junit

[Obtenir la méthode, exécuter la méthode avec l'API de réflexion Java] (http://pppurple.hatenablog.com/entry/2016/07/23/205446)

environnement

OS:Windows8.1 32bit eclipse:4.5.2

Classe testée

TestTarget.java



packege com.web.test

public class TestTarget {

  private TestTarget() {
    //Pas de description
  }

  private int minus(int x, int y) {
        return (x - y);
  }

}

classe de test junit

Créer une classe de test junit pour la classe sous test

SampleTest.java



import static org.junit.Assert.*;

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

import org.junit.Test;

public class SampleTest {

    @Test
    public void test()
        throws NoSuchMethodException,
        SecurityException,
        IllegalAccessException,
        IllegalArgumentException,
        InvocationTargetException
    {
        TestTarget testTarget = new TestTarget();

        Method method = Sample.class.getDeclaredMethod("minus", int.class, int.class);
        method.setAccessible(true);

        int actual = (int)method.invoke(testTarget, 8, 2);

        assertEquals(6, actual);
    }

Si tu fais ça  The constructor Empty() is not visible Cela s'est produit, alors changez-le comme suit

SampleTest.java



import static org.junit.Assert.*;

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

import org.junit.Test;

public class SampleTest {

    @Test
    public void test()
        throws NoSuchMethodException,
        SecurityException,
        IllegalAccessException,
        IllegalArgumentException,
        InvocationTargetException
    {
        //Avant correction
        //TestTarget testTarget = new TestTarget();
                //modifié
                //Obtenez une instance de la classe testée à l'aide de l'API de réflexion
        TestTarget testTarget = Class.forName("com.web.test.TestTarget").newInstance();

        Method method = testTarget.class.getDeclaredMethod("minus", int.class, int.class);
        method.setAccessible(true);

        int actual = (int)method.invoke(testTarget, 8, 2);

        assertEquals(6, actual);
    }

avec ça  The constructor Empty() is not visible A été résolu

Recommended Posts

Comment définir quand "Le constructeur Empty () n'est pas visible" se produit dans junit
Comment régler chrony lorsque le temps change dans CentOS7
Comment afficher la valeur lorsqu'il y a un tableau dans le tableau
Comment résoudre le problème lorsque la valeur n'est pas envoyée lorsque le formulaire est désactivé dans les rails et envoyé
Comment contraindre l'action de la destination de transition lorsqu'elle n'est pas connectée
Lorsque le projet n'est pas affiché dans eclipse
Comment résoudre le problème que le bean n'est pas traité correctement lorsqu'il est imbriqué dans Spring Batch
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
[Java] Comment omettre le constructeur privé dans Lombok
Comment résoudre l'erreur'ActionView :: Template :: Error (L'actif "application.css" n'est pas présent dans le pipeline d'actifs. '"Lors de la précompilation d'actifs Rails
Comment identifier la cause lorsque le GC se produit fréquemment et que l'utilisation du processeur est élevée
Résumé de l'utilisation du jeu de proxy dans IE lors de la connexion avec Java
Lorsqu'une erreur se produit même si la validation n'est pas définie
Comment effectuer un processus spécifique lorsque le bouton de retour est enfoncé dans le fragment Android
Comment définir Lombok dans Eclipse
Que faire lorsque les modifications du servlet ne sont pas reflétées
[jOOQ] Comment utiliser CASE WHEN dans la clause WHERE / AND / OR
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
Vérifiez le comportement lorsque l'exception spécifiée par attendu dans l'annotation JUnit 4 @Test se produit ou ne se produit pas.
Patch Monkey pour renvoyer l'heure actuelle lorsqu'une chaîne vide est spécifiée dans Time.parse de Ruby
Comment créer un retrait de deux espaces d'un octet dans l'implémentation JAXB du JDK
Spring Autowired est écrit dans le constructeur
Que faire lorsque le préfixe c n'est pas lié dans JSP
Comment filtrer JUnit Test dans Gradle
[RSpec] Lorsque vous souhaitez utiliser la variable d'instance du contrôleur dans le test [attribuer n'est pas recommandé]
[Java] Comment régler la date sur 00:00:00
Comment fixer la date système dans JUnit
[Docker] Comment créer lorsque le code source est monté en liaison sur le conteneur
Comment trouver le nombre total de pages lors de la pagination en Java
Comment obtenir la date avec Java
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Comment référencer une colonne lors du remplacement de la méthode de nom de colonne dans ActiveRecord
Lorsque le projet n'est pas affiché dans eclipse
Traitement lorsqu'un ID qui n'existe pas dans la base de données est entré dans l'URL
Comment définir quand "Le constructeur Empty () n'est pas visible" se produit dans junit
Lorsque j'exécute la commande source dans le Makefile d'Ubuntu, j'obtiens "source: command not found"
Comment définir les tabulations et les espaces pour qu'ils soient visibles à l'aide de la touche de tabulation pour insérer des espaces dans des fichiers Java dans Eclipse
Possibilité lors du déploiement sur EC2 mais rien n'est affiché dans le journal des erreurs
Comment rediriger vers http-> https lorsque SSL est activé dans l'environnement Rails × Heroku
Comment définir des variables d'environnement dans le fichier de propriétés de l'application Spring Boot
Est-il courant de ne pas écrire la balise de fermeture de la balise <P> dans Javadoc?
La cause n'est pas visible lors de l'appel de méthodes d'autres classes en java
Comment vérifier le journal dans le conteneur Docker
Lorsque Eclipse ne parvient pas à démarrer le serveur
JUnit 5: Comment écrire des cas de test dans enum
Comment effacer la base de données lors de la recréation de l'application
[Java] (pour MacOS) Méthode de définition du chemin de classe
Que faire si IllegalStateException se produit dans PlayFramework
Comment créer la blockchain la plus simple de Ruby
Comment vérifier les commandes Rails dans le terminal
Ebean.update () n'est pas exécuté dans le modèle hérité.
Comment générer automatiquement un constructeur dans Eclipse