[JAVA] So testen Sie eine private Methode, die ein Array- oder Argument variabler Länge in JUnit verwendet

Ich habe bei So testen Sie eine private Methode mit JUnit - Qiita studiert, aber ... ich bin nicht genug.

Umgebung OS : macOS Hight Sierra Eclipse : Neon.3 Release (4.6.3) JUnit : 4 JDK : 1.8.45

Das Testziel ist eine private Methode, die ein Array oder ein Argument variabler Länge verwendet.


package variable.length.argument;

public class WhatVariableLengthArgument {
    /**
     *Argumente mit variabler Länge anzeigen.
     * @Parameterbeschreibung Beschreibung.
     * @param args Argumente mit variabler Länge.
     */
    private void printLengthArgs(String description, Object... args) {
        System.out.print(description + " : ");
        for (Object object : args) {
            System.out.print(object + ",");
        }
        System.out.println();
    }

    /**
     *Zeigen Sie ein Array von Argumenten an.
     * @Parameterbeschreibung Arraybeschreibung.
     * @param array array.
     */
    private void printArrayArgs(String description, String[] array) {
        System.out.print(description + " : ");
        for (String s : array) {
            System.out.print(s + ",");
        }
        System.out.println();
    }
}

Wenn das Argument ein Array ist, geben Sie in getDeclaredMethod () den Typnamen []. Class an

Wenn das Argument ein Array ist


public class WhatVariableLengthArgumentTest {
    /**Zu testende Instanz. */
    WhatVariableLengthArgument testInstance = new WhatVariableLengthArgument();

    @Test
public void Testmethoden, die ein Array als Argument verwenden() throws NoSuchMethodException, SecurityException,
            IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Führen Sie eine Methode aus, die ein Array als Argument verwendet("Argument ist ein Array", new String[] { "1", "Zweite" });
    }

Führen Sie eine Methode aus, die ein privates void-Array als Argument verwendet(String description, String[] array)
            throws NoSuchMethodException, SecurityException, IllegalAccessException,
            IllegalArgumentException, InvocationTargetException {
        String methodName = "printArrayArgs";
        Method method =Rufen Sie eine Methode ab, die ein Array als Argument verwendet(methodName);
        method.invoke(this.testInstance, description, array);
    }

private Methode Ruft eine Methode ab, die ein Array als Argument verwendet(String methodName)
            throws NoSuchMethodException, SecurityException {
        //Das Array ist auch ein normaler String[].kann als Klasse geschrieben werden.
        Method method = WhatVariableLengthArgument.class.getDeclaredMethod(
                methodName, String.class, String[].class);
        method.setAccessible(true);
        return method;
    }
}

Klasse arrClass = String []. Class; // Array ist OK Java Reflection Memo (Hishidamas Java Reflection Memo)

Wenn das Argument ein Argument variabler Länge ist, machen Sie dasselbe wie für ein Array

Wenn das Argument ein Argument variabler Länge ist


    WhatVariableLengthArgument testInstance = new WhatVariableLengthArgument();

    @Test
public void Testmethoden, die Argumente variabler Länge verwenden() throws NoSuchMethodException, SecurityException,
            IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Führen Sie eine Methode aus, die ein Argument variabler Länge als Argument verwendet("Argument variabler Länge:Eine Zeichenfolge", "1");
Führen Sie eine Methode aus, die ein Argument variabler Länge als Argument verwendet("Argument variabler Länge:2 Saiten", "1", "Zweite");
    }

private void Führt eine Methode aus, die ein Argument variabler Länge als Argument verwendet(String description, Object... args)
            throws NoSuchMethodException, SecurityException, IllegalAccessException,
            IllegalArgumentException, InvocationTargetException {
        String methodName = "printLengthArgs";
        Method method =Holen Sie sich eine Methode, die ein Argument variabler Länge akzeptiert(methodName);
        method.invoke(this.testInstance, description, args);
    }

private Methode Ruft eine Methode ab, die ein Argument variabler Länge als Argument verwendet(String methodName)
            throws NoSuchMethodException, SecurityException {
        //Argumente mit variabler Länge können auf die gleiche Weise wie Arrays geschrieben werden, da sie beim Kompilieren zu Arrays werden..
        Method method = WhatVariableLengthArgument.class.getDeclaredMethod(
                methodName, String.class, Object[].class);
        method.setAccessible(true);
        return method;
    }

Methoden mit Argumenten variabler Länge Wenn Sie mit getMethod () eine Methode mit Argumenten variabler Länge erhalten möchten, geben Sie ein Array als Argumenttyp an. Java Reflection Memo (Hishidamas Java Reflection Memo)

Recommended Posts

So testen Sie eine private Methode, die ein Array- oder Argument variabler Länge in JUnit verwendet
So testen Sie den privaten Bereich mit JUnit
Testen Sie private Methoden in JUnit
Testen Sie private Methoden in JUnit
[Java] Testen Sie private Methoden mit JUnit
So filtern Sie den JUnit-Test in Gradle
[Java] So testen Sie, ob es in JUnit null ist
So testen Sie Interrupts während Thread.sleep mit JUnit
JUnit 5: Wie man Testfälle in enum schreibt
Wenn Sie die Testabdeckung privater Methoden in JUnit erfüllen möchten
Zusammenfassung der Stammklassen in verschiedenen Sprachen
Parallele und parallele Verarbeitung in verschiedenen Sprachen (Java Edition)
Verschiedene Renten in Japan
Verschiedene Threads in Java
Verwenden Sie den Konstruktor mit Argumenten in cucumber-picocontainer
Wie Speicher in objektorientierten Sprachen funktioniert
So testen Sie eine private Methode, die ein Array- oder Argument variabler Länge in JUnit verwendet
Beachten Sie beim Testen privater Methoden in JUnit
So führen Sie JUnit in Eclipse aus
Steuern Sie die Testreihenfolge in Junit4 mit einem Aufzählungstyp
So beheben Sie das Systemdatum in JUnit
So testen Sie eine private Methode und verspotten sie teilweise in Java
So führen Sie UT mit Excel als Testdaten mit Spring Boot + JUnit5 + DBUnit durch
So schreiben Sie Testcode mit Basic-Zertifizierung
Visualisieren Sie die in TestNG ausgeführte Testmethode im Listener
Mischen Sie Testfälle mit JUnit 5 und Standardmethoden
So greifen Sie auf Java Private-Methoden und -Felder zu
Einbetten von JavaScript-Variablen in HTML mit Thymeleaf
So implementieren Sie UICollectionView mit Code nur in Swift
Aufrufen von Funktionen in großen Mengen mit Java Reflection
[Java] So lassen Sie den privaten Konstruktor in Lombok weg
So wechseln Sie Tomcat context.xml mit Eclipse WTP
So führen Sie mit RxAndroid einen Komponententest mit JVM an einer Quelle durch
Verwendung der Z3-Bibliothek in Scala mit Eclipse
Organisierte schrittweise Interaktion mit dem JDK
[So fügen Sie ein Video mit Rails in haml ein]
So löschen Sie mit Docker Bilder ohne Tags in großen Mengen
Verwendung der JDD-Bibliothek in Scala mit Eclipse
So testen Sie den Bildschirm zum Hochladen von Dateien mit Spring + Selenium
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
Abfragen von Arrays in jsonb mit Rails + postgres
Zusammenfassung der Implementierung von Standardargumenten in Java
Machen Sie einen Unit-Test mit Junit.
So trennen Sie Wörter in Namen in Klassen, Methoden und Variablen
So übergeben Sie ein Objekt in MyBatis an Mapper, ohne ein Argument durchzugehen
So behandeln Sie Ausnahmen mit Java 8 Stream oder Optional kühl
So führen Sie mit dem Rake-Test von gem nur bestimmte Dateien aus
So erhalten Sie Werte in Echtzeit mit TextWatcher (Android)
Wie man einige Methoden der zu testenden Klasse verspottet
Zuordnung zu einer Klasse mit einem Wertobjekt in How to My Batis
So löschen Sie das Testbild, nachdem Sie den Rspec-Test mit CarrierWave ausgeführt haben
So richten Sie einen Proxy mit Authentifizierung in Feign ein
[Java] Ich möchte Standardeingabe und Standardausgabe mit JUnit testen
[Java] So suchen Sie mit der Methode includes nach Werten in einem Array (oder einer Liste)
Umgang mit dem Ereignis, dass Committee :: InvalidRequest während des Rspec-Datei-Upload-Tests im Committee auftritt
Testen Sie die Web-API mit junit
Informationen zu Validierungsmethoden in JUnit
Verwendung von JUnit (Anfänger)
Wie man mit html.erb nummeriert (nummeriert)
So aktualisieren Sie mit activerecord-import
Wie schreibe ich Junit 5 organisiert
[Erstellen] Verwendung von JUnit