1

Ich muss eine statische Methode auf einem Android Instrumententest verspotten. Wenn ich eine statische Methode vortäuschen muss, muss die Testklasse @RunWith(PowerMockRunner.class) sein. Aber mein Instrumententest muss mit AndroidJUnit4.class laufen.Android Instrumentierung Test mit PoweMockito

Ist es möglich, zwei lauffähig zu haben? Oder gibt es eine andere Möglichkeit, mit Power-Mock statische Methoden zu spielen? oder irgendwelche anderen Optionen, um statische Klassen zu verspotten?

Antwort

2

Um solche Fälle seit der Version 1.4 zu behandeln, ist es möglich, PowerMock mit einer JUnit-Regel statt mit dem Runner zu starten. So etwas wie folgt aussehen:

@RunWith(AndroidJUnit4.class) 
@PrepareForTest(X.class); 
public class MyTest { 
    @Rule 
    PowerMockRule rule = new PowerMockRule(); 

    // Tests goes here 
    ... 
} 

Aber beachten Sie, dass PowerMock Byte-Code-Manipulation verwendet, die jemand zu dalvikVM dex konvertieren muss. Und derzeit gibt es keine Werkzeuge, die das unterstützen (https://groups.google.com/forum/#!topic/powermock/9kwPaWoZ_14, https://stackoverflow.com/a/27956309/624706)

Verwandte Themen