Domanda

Ho cercato di capire come eseguire i test con parametri in Junit4 insieme PowerMock. Il problema è che per usare PowerMock che serve per decorare la vostra classe di test con

@RunWith(PowerMockRunner.class)

e di utilizzare i test con parametri dovete decorare con

@RunWith(Parameterized.class)

Da quello che posso vedere che sembrano esclusi reciprocamente !? È vero? C'è un modo per aggirare questo? Ho cercato di creare una classe con parametri all'interno di una classe in esecuzione con PowerMock; qualcosa di simile a questo:

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

Ma purtroppo questo non fa molto bene ... Il ParamTestClass ancora non viene eseguito con il supporto PowerMock (non che sorprende forse) ... E ho sorta di corto di idee in modo che qualsiasi aiuto è molto apprezzato !

Aggiornamento: Per Googler futuro anche vedere: Utilizzando PowerMock senza il RunWith?

È stato utile?

Soluzione

Ho avuto lo stesso problema. Purtroppo non mi permetteva di utilizzare una regola PowerMock a causa della JVM che avevo. Invece della regola che ho usato RunnerDelegate.

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

Altri suggerimenti

Sì, questo funziona utilizzando il PowerMock Regola disponibile se si utilizza JUnit 4.7+ .

Non è possibile utilizzare due corridori di classe in una sola volta, in modo da sarà sicuramente di scrivere il proprio test runner per realizzare questo obiettivo.

Io non so niente di Powermock, ma dopo 10 secondi di ricerca, sembra che una soluzione potrebbe essere quella di scrivere un test runner che utilizza class loader di powermock e corre test parametrizzati. Se si riesce a capire come delegare al test runner con parametri da dentro il test corridore personalizzato, che potrebbe essere la soluzione migliore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top