test framework example ejemplos java junit instantiation testcase

java - example - junit.framework.testcase jar



Instanciación de objetos JUnit TestCase (5)

Hay una instancia para cada ejecución de prueba. Tratar

public class MyTest extends TestCase { public MyTest() { System.out.println("MyTest Constructor"); public void setUp() { System.out.println("MyTest setUp"); public void tearDown() { System.out.println("MyTest tearDown"); public void testSomething() { System.out.println("MyTest testSomething"); public void testSomethingElse() { System.out.println("MyTest testSomethingElse"); }

El código fuente (incluido el de las versiones más recientes, tu y mi ejemplo es Junit 3) está en http://www.junit.org

¿Se utiliza una instancia nueva (o diferente) del objeto TestCase para ejecutar cada método de prueba en un caso de prueba JUnit? O una instancia se reutiliza para todas las pruebas?

public class MyTest extends TestCase { public void testSomething() { ... } public void testSomethingElse() { ... } }

Al ejecutar esta prueba, ¿cuántas instancias de la clase MyTest se crean?

Si es posible, proporcione un enlace a un documento o código fuente donde pueda verificar el comportamiento.


No pude encontrar una respuesta clara en los documentos JUnit sobre su pregunta, pero la intención, como escribió anjanb, es que cada prueba sea independiente de las demás, por lo que podría crearse una nueva instancia de TestCase para cada prueba que se ejecutará.

Si tiene una costosa configuración de prueba (" accesorios ") que desea compartir en todos los casos de prueba en una clase de prueba, puede usar la anotación @BeforeClass en un método estático para lograr este resultado: http: //junit.sourceforge. net / javadoc_40 / org / junit / BeforeClass.html . Sin embargo, tenga en cuenta que aún se puede crear una nueva instancia para cada prueba, pero eso no afectará a los datos estáticos que su método @BeforeTest haya inicializado.


Sí, se crea una instancia separada.

Al ejecutar esa prueba, se crean 2 instancias de MyTest.

Si desea un comportamiento diferente, una opción es usar una herramienta similar llamada TestNG ( http://testng.org/doc/ ).


Si está preguntando esto porque le preocupan los datos que se inicializan y reinicializan en su constructor, tenga en cuenta que la forma predeterminada de inicializar los datos de casos de prueba es a través de setUp () y tearDown () exclusivamente.


Sí definitivamente. Descubrí que no se podía acceder a los datos que almacenaba en las variables de instancia entre las pruebas debido a este diseño.