[JAVA] Festlegen, wann in junit "Der Konstruktor Empty () ist nicht sichtbar" auftritt

Zusammenfassung dieses Artikels

Als ich junit mit Eclipse verwendet habe, hatte ich ein kleines Problem, daher werde ich die Einstellungsmethode als Memorandum beschreiben. Insbesondere kann der folgende Fehler auftreten, wenn die Testzielklasse einen privaten Konstruktor hat, sodass die Problemumgehung beschrieben wird.

The constructor Empty() is not visible

Referenz

So testen Sie eine private Methode in Junit

[Methode abrufen, Methode mit Java Reflection API ausführen] (http://pppurple.hatenablog.com/entry/2016/07/23/205446)

Umgebung

OS:Windows8.1 32bit eclipse:4.5.2

Getestete Klasse

TestTarget.java



packege com.web.test

public class TestTarget {

  private TestTarget() {
    //Keine Beschreibung
  }

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

}

Junit Testklasse

Erstellen Sie eine Junit-Testklasse für die zu testende Klasse

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);
    }

Wenn du das tust  The constructor Empty() is not visible Ist aufgetreten, ändern Sie es wie folgt

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
    {
        //Vor der Korrektur
        //TestTarget testTarget = new TestTarget();
                //Überarbeitet
                //Rufen Sie mithilfe der Reflection-API eine Instanz der zu testenden Klasse ab
        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);
    }

mit diesem  The constructor Empty() is not visible Wurde gelöst

Recommended Posts

Festlegen, wann in junit "Der Konstruktor Empty () ist nicht sichtbar" auftritt
So stellen Sie die Chronik ein, wenn sich die Zeit in CentOS7 verschiebt
So geben Sie den Wert aus, wenn sich ein Array im Array befindet
So lösen Sie das Problem, wenn der Wert nicht gesendet wird, wenn das Formular in Schienen deaktiviert und gesendet wird
So beschränken Sie die Aktion des Übergangsziels, wenn Sie nicht angemeldet sind
Wenn das Projekt nicht in Eclipse angezeigt wird
So lösen Sie das Problem, dass die Bean beim Verschachteln in Spring Batch nicht ordnungsgemäß verarbeitet wird
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
[Java] So lassen Sie den privaten Konstruktor in Lombok weg
So beheben Sie den Fehler 'ActionView :: Template :: Error' (Das Asset "application.css" ist in der Asset-Pipeline nicht vorhanden. '"Beim Vorkompilieren von Rails-Assets
So identifizieren Sie die Ursache, wenn GC häufig auftritt und die CPU-Auslastung hoch ist
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java
Wenn ein Fehler auftritt, obwohl die Validierung nicht festgelegt ist
So führen Sie einen bestimmten Vorgang aus, wenn die Zurück-Taste im Android-Fragment gedrückt wird
So setzen Sie Lombok in Eclipse
Was tun, wenn die Änderungen im Servlet nicht berücksichtigt werden?
[jOOQ] Wie in der WHERE / AND / OR-Klausel WANN FALLEN
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
Überprüfen Sie das Verhalten, wenn die in der JUnit 4 @ Test-Annotation angegebene Ausnahme auftritt oder nicht auftritt.
Affen-Patch, um die aktuelle Zeit zurückzugeben, wenn in Time.parse of Ruby eine leere Zeichenfolge angegeben ist
So machen Sie den Einzug zu zwei Einzelbyte-Leerzeichen in der JAXB-Implementierung des JDK
Spring Autowired wird im Konstruktor geschrieben
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
So filtern Sie den JUnit-Test in Gradle
[RSpec] Wenn Sie die Instanzvariable des Controllers im Test verwenden möchten [Zuweisungen wird nicht empfohlen]
[Java] So stellen Sie die Datums- und Uhrzeit auf 00:00:00 ein
So beheben Sie das Systemdatum in JUnit
[Docker] Erstellen, wenn der Quellcode auf dem Container gebunden ist
So ermitteln Sie die Gesamtzahl der Seiten beim Paging in Java
So erhalten Sie das Datum mit Java
Was tun, wenn der Vorgang nicht zulässig ist, wenn ein Befehl im Terminal ausgeführt wird?
So verweisen Sie auf eine Spalte, wenn Sie die Spaltennamensmethode in ActiveRecord überschreiben
Wenn das Projekt nicht in Eclipse angezeigt wird
Verarbeitung, wenn eine ID, die nicht in der Datenbank vorhanden ist, in die URL eingegeben wird
Festlegen, wann in junit "Der Konstruktor Empty () ist nicht sichtbar" auftritt
Wenn ich den Quellbefehl im Makefile von Ubuntu ausführe, erhalte ich "source: Befehl nicht gefunden".
So legen Sie fest, dass Tabulatoren und Leerzeichen sichtbar sind, indem Sie mit der Tabulatortaste Leerzeichen in Java-Dateien in Eclipse einfügen
Möglichkeit bei der Bereitstellung auf EC2, aber im Fehlerprotokoll wird nichts angezeigt
So leiten Sie zu http-> https um, wenn SSL in der Rails × Heroku-Umgebung aktiviert ist
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
Ist es Mainstream, das schließende Tag des <P> -Tags nicht in Javadoc zu schreiben?
Ursache ist nicht sichtbar, wenn Methoden anderer Klassen in Java aufgerufen werden
So überprüfen Sie das Protokoll im Docker-Container
Wenn Eclipse den Server nicht starten kann
JUnit 5: Wie man Testfälle in enum schreibt
So löschen Sie die Datenbank beim Neuerstellen der App
[Java] (für MacOS) Methode zur Einstellung des Klassenpfads
Was tun, wenn in PlayFramework eine IllegalStateException auftritt?
So erstellen Sie die einfachste Blockchain in Ruby
So überprüfen Sie Rails-Befehle im Terminal
Ebean.update () wird im geerbten Modell nicht ausgeführt.
So generieren Sie automatisch einen Konstruktor in Eclipse