Pregunta

¿Hay una manera limpia para funcionar con parámetros Junit 4 pruebas sin cambiar el corredor, es decir, sin utilizar @RunWith(Parameterized.class)?

Tengo pruebas de unidad que requieren un corredor especial ya y no puedo reemplazar a éste con Parameterized. Tal vez hay una especie de "encadenamiento corredor", por lo que pude ambos corredores al mismo tiempo? (Sólo una conjetura salvaje ...)

¿Fue útil?

Solución

org.junit.runners.Parameterized es creado por org.junit.internal.builders.AnnotatedBuilder por reflejar mecanismo. Tal vez usted podría extender Parameterized como su propio corredor:. @RunWith ( MyParameterized .class)

Otros consejos

Me han dado a conocer un marco con un par de corredores que son capaces de hacer cumplir la parametrización de la clase de prueba mientras que le permite a la cadena de un corredor de 3 ª parte arbitraria de la prueba de ejecución real.

El marco es CallbackParams - (http://callbackparams.org) - y estos son los corredores:

  • CallbackParamsRunner
  • BddRunner

Al utilizar el marco de anotación ...

  • @WrappedRunner

... puede especificar un corredor arbitraria tercera partes de esta manera:

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

pruebas con parámetros con CallbackParams difieren considerablemente del enfoque tradicional de prueba de parametrización, sin embargo. Las razones se explican en este tutorial artículo con BddRunner explicado cerca del final del artículo tutorial .

En sus primeros CallbackParams prueban que probablemente preferiría BddRunner, ya que requiere menos cosas caldera de la placa, pero cuando se inicia la reutilización de valores de los parámetros entre los diferentes test-clases que son probablemente mejor con CallbackParamsRunner, que demanda más fuerte verificación de tipos.

También - con BddRunner no debe tener ningún @ resultados de los métodos. En su lugar debe utilizar las anotaciones marco @Given, @Cuando y @Then. Ese requisito a veces en conflicto con los del corredor de terceros, pero por lo general funciona bastante bien.

Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top