2014-05-13 7 views

Antwort

1

Sie können ein Framework verwenden, das Aufrufe von Konstruktoren wie JMockit oder Powermock ermöglicht.

Powermock

JMockit

3

verspottende arbeitet auf Methoden und Schnittstellen , nicht Felder; Darüber hinaus arbeitet es unter Instanzenmitglieder, nicht statische Mitglieder. Mockito und Powermock sind nicht die richtigen Werkzeuge, um dieses Problem zu lösen.

Obwohl Sie können use reflection to set final fields, Sie arbeiten effektiv um Ihre eigene Erklärung, und unterliegen den Einschränkungen und Gefahren von JLS 17.5.3.

ein besseres Design wäre, das Verfahren in dem zu testenden System neu zu schreiben ihre Someclass Abhängigkeit zu injizieren:

public void methodUnderTest() { 
    methodUnderTest(MyClass.field); 
} 

/** Package-visible for testing. Test this method instead. */ 
void methodUnderTest(SomeClass someClass) { 
    someClass.firePhotonTorpedoes(); 
} 
Verwandte Themen