Tengo un código de configuración común que he excluido de un método marcado con @Before
. Sin embargo, no es necesario que todo este código se ejecute para cada prueba individual. ¿Hay alguna manera de marcarlo para que el método @Before
solo se ejecute antes de ciertas pruebas?JUnit: @Antes solo para algunos métodos de prueba?
Respuesta
Simplemente pase las pruebas que no necesitan el código de configuración a una clase de prueba separada. Si tiene algún otro código común para las pruebas que sería útil mantener, muévalo a una clase auxiliar.
O use TestNG. Le da un control más detallado sobre las pruebas.
Es posible lograrlo también a través de Assume desde JUnit. Y luego puede verificar el nombre del método para el que desea procesar @Before
.
public class MyTest {
@Rule
public TestName testName = new TestName();
@Before
public void setUp() {
assumeTrue(testName.getMethodName().equals("myMethodName"));
// setup follows
}
}
Comprobar la topic para más ideas sobre @Rule
.
No utilizar supongamos que detiene la ejecución de toda la prueba, no solo el método @Before. if (! testName.getMethodName(). equals ("myMethodName")) {return;} (disculpe el espaciado) funcionaría mejor. – jMcK
Francamente encuentro la idea de "si el nombre de prueba es igual a" no tiene sentido, ya que también podría llamar directamente a la función antes y después en las pruebas que los necesitan, y eliminar las anotaciones Antes y Después. – aliteralmind
No estoy seguro de @Before, pero recientemente se me ocurrió una estrategia para @After block para que se ejecute selectivamente. La implementación fue directa. Tengo algunos indicadores establecidos en los valores predeterminados como parte de la clase de prueba. Se restablecen a los valores predeterminados en @Antes de la clase. En la clase, tengo que hacer cosas específicas para una bandera, configuré esas banderas & en @Después de verificar los valores de bandera para hacer las tareas respectivas.
- 1. JUnit: prueba la clase auxiliar con solo métodos estáticos
- 2. TDD: Métodos de "solo prueba"
- 3. Junit - Multiple @ Before vs. one @Antes de dividir en métodos
- 4. método de prueba junit para getters & setters
- 5. Prueba JUnit para System.out.println()
- 6. JUnit Reports - Descripciones de los métodos de prueba
- 7. ¿hay alguna anotación condicional en JUnit para marcar algunos casos de prueba para omitir?
- 8. C/C++ marco de prueba (como JUnit para java)
- 9. prueba de junit - assertEquals para excepción
- 10. Excluir métodos de prueba JUnit individuales sin modificar la clase de prueba?
- 11. Prueba de código asíncrono con JUnit
- 12. Prueba FragmentActivity Junit
- 13. Clase de prueba genérica de JUnit
- 14. Pruebas unitarias Algunos métodos de servicio web
- 15. ¿Debo dividir los métodos para su reutilización en JUnit?
- 16. JUnit y junit.framework.TestSuite - No hay métodos ejecutables
- 17. Servidor de prueba con JUnit
- 18. Conjunto de pruebas Junit 4 y clases de prueba individuales
- 19. ¿JUnit ejecuta casos de prueba secuencialmente?
- 20. ¿Por qué JUnit ejecuta casos de prueba para teoría solo hasta la primera falla?
- 21. JUnit Método de prueba con naturaleza aleatoria
- 22. JUnit @Rule interacción del ciclo de vida con @Antes de
- 23. solicitud HTTP POST prueba de Java Junit
- 24. JUnit agregar pruebas adicionales al caso de prueba
- 25. Ant, correr todo jUnit prueba
- 26. PHPUnit: simula todos los métodos, excepto algunos
- 27. ¿Cómo puedo ejecutar (o cambiar el orden de) métodos de prueba específicos en una clase de prueba JUnit?
- 28. Usar violín solo para algunos procesos
- 29. Bash comando para mover solo algunos archivos?
- 30. No se puede depurar el código Mockito/JUnit en Eclipse, funciona bien con solo JUnit
+1 en otras palabras, no use @Before si no desea el comportamiento de @Before :) –
realmente útil @Kirschstein :(- "hacerlo bien en primer lugar" –