Guave @VisibleForTesting : mir Hilft ein vollständiges Beispiel

Meine Absicht ist zu tun unit-Tests für private Methoden und ich verstehe, wie Sie zum importieren der @VisibleForTesting und verwenden Sie es für eine private-Methode. Ich habe schon einiges in der Suche aber nicht in der Lage, um zu sehen, ein vollständiges Beispiel veranschaulicht diese Funktion.

ZB:

class MyClass {
    @VisibleForTesting 
    private double[] getWorkArray(double[] values,int length) {
               :
               :
        return <some double array> 
    }
}

Nun in JUnit, ich muss in der Lage sein zu tun

@Test
public void testProvateMethod() {
    MyClass object = new MyClass();
    assertNotNull(object.getWorkArray(...);
}

Aber der schwierige Teil ist, ich bin nicht in der Lage ist, zu begreifen,/die folgenden
a) Ausschnitt des maven-compiler-plugin für einschließlich der zugehörigen annotation-Prozessor
b) Tatsächlich in der Lage sein zu testen, die eine private Methode. (da wirft er Fehler mit Bezug auf die Sichtbarkeit der Methode)

Ich bin nicht in der Lage, es zu tun, in Aktion, während ich Schreibe ein test in JUnit (aufgrund der privaten access-Fehler). Für zB: mvn clean test

Geben Sie bitte ein komplettes Beispiel, um wirklich alle Schritte, die daran beteiligt sind, die JUnit testen von privaten Methoden durchgeführt.

Tun Sie es nicht. Testen Sie die private Methode durch die öffentlich-rechtlichen. Wenn das zu kompliziert ist, es zeigt, dass Sie zu viele Zuständigkeiten in Ihrer Klasse. Betrachten extrahieren einer Klasse, die macht die ehemals private Methode als eine öffentliche.
Das problem hier ist 2 Fach.
Das problem hier ist, über eine einfache Transformation von array gegeben begin-und end-index-was ist es Wert seine eigene Methode, die ich dachte, als inlining diese Linien an jedem Ort muss ich in den code. Auch Ein weiterer Punkt im Zusammenhang : lassen Sie uns sagen, wenn ich diese extrahieren Verwandte Methoden, um eine private static geschachtelte Klasse; wie würde ich mich über Tests der Methoden einer privaten statischen Klasse.

InformationsquelleAutor user3709525 | 2014-06-05

Schreibe einen Kommentar