Domanda

C'è un modo pulito per funzionare con parametri JUnit 4 test senza cambiare il corridore, vale a dire senza l'utilizzo @RunWith(Parameterized.class)?

ho test di unità che richiedono già un corridore speciale e non posso sostituire questo con Parameterized. Forse c'è una sorta di "runner concatenamento", così ho potuto entrambi i corridori allo stesso tempo? (Solo una supposizione selvaggia ...)

È stato utile?

Soluzione

org.junit.runners.Parameterized è creato da org.junit.internal.builders.AnnotatedBuilder per riflettere meccanismo. Forse si potrebbe estendere Parameterized come il tuo Runner:. @RunWith ( MyParameterized .class)

Altri suggerimenti

Ho pubblicato un quadro con un paio di corridori che sono in grado di far rispettare la parametrizzazione sul test di classe, mentre si permette di concatenare un corridore 3rd-party arbitrario per l'attuale test di esecuzione.

Il quadro è CallbackParams - (http://callbackparams.org) - e questi sono i corridori:

  • CallbackParamsRunner
  • BddRunner

Utilizzando il framework di annotazione ...

  • @WrappedRunner

... è possibile specificare un arbitrario corridore 3rd-party in questo modo:

@RunWith(CallbackParamsRunner.class) // or @RunWith(BddRunner.class)
@WrappedRunner(YourSpecialRunner.class)
public class YourTest {
...

test parametrizzati con CallbackParams differiscono notevolmente dall'approccio tradizionale di test-parametrizzazione, tuttavia. I motivi sono spiegati in questo esercitazione articolo con BddRunner spiegato vicino alla fine di questo articolo esercitazione .

Per i primi CallbackParams testare probabilmente si preferisce BddRunner, in quanto richiede meno roba caldaia-piatto, ma quando si inizia a riutilizzare i valori dei parametri tra i diversi test-classi che si sono probabilmente meglio con CallbackParamsRunner, che richiede più forte tipo di controllo.

Inoltre - con BddRunner non è necessario avere alcuna @ Test-metodi. Invece è necessario utilizzare le annotazioni quadro @Given, @Quando e @Then. Tale requisito a volte si scontrano con quelle del corridore di terze parti, ma di solito funziona abbastanza bene.

Buona fortuna!

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