Frage

Ich habe versucht, herauszufinden, wie parametriert Tests in junit4 zusammen mit PowerMock laufen. Das Problem ist, dass Sie die Verwendung PowerMock benötigen Testklasse dekorieren mit

@RunWith(PowerMockRunner.class)

und parametrisiert Tests verwenden können, müssen Sie dekorieren mit

@RunWith(Parameterized.class)

Von dem, was ich sehen kann, sie für beide Seiten ausgeschlossen scheinen !? Ist das wahr? Gibt es eine Möglichkeit, um dieses? Ich habe versucht, eine parametrisierte Klasse innerhalb einer Klasse läuft mit PowerMock zu schaffen; so etwas wie folgt aus:

@RunWith(PowerMockRunner.class)
class MyTestClass {
     @RunWith(Parameterized.class)
     class ParamTestClass {
          // Yadayada
     }
}

Aber leider ist dies nicht viel Gutes tun ... Die ParamTestClass immer noch nicht mit PowerMock Unterstützung läuft (nicht überraschend vielleicht) ... Und ich habe Art läuft die Ideen so dass jede Hilfe sehr geschätzt !

Update: Für zukünftige Googler siehe auch: PowerMock Verwendung ohne die RunWith?

War es hilfreich?

Lösung

Ich hatte das gleiche Problem. Leider würde es nicht lassen Sie mich eine PowerMock Regel aufgrund der JVM Ich hatte verwenden. Anstelle der Regel verwendete ich RunnerDelegate.

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(Parameterized.class)

Andere Tipps

Ja Dies funktioniert durch die PowerMock mit Regel zur Verfügung, wenn Sie JUnit verwenden 4.7+ .

Sie können nicht auf einmal zwei Klassen Läufer verwenden, so werden Sie auf jeden Fall Ihre eigenen Testläufer haben schreiben Um das zu erreichen.

Ich weiß nichts über PowerMock, aber nach 10 Sekunden der Forschung, es sieht aus wie eine Lösung wäre, einen Test-Runner zu schreiben, die Klassenlade PowerMock die verwendet und parametriert Tests läuft. Wenn Sie herausfinden, wie im benutzerdefinierten Test Runner auf den parametrisierte Testläufer zu delegieren, die vielleicht die beste Wahl sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top