Tengo una clase de prueba en java, y hay varios métodos anotados con @Prueba en la que, de alguna manera, quiero Junit método de ejecución de Un método antes de B cuando puedo ejecutar el conjunto de pruebas. Es posible o necesario?

OriginalEl autor George | 2011-03-07

5 Comentarios

  1. 14

    Este tipo de dependencia de los métodos de prueba es un mal diseño y debe ser evitado. Si no hay código de inicialización en un método de prueba que debe realizarse para la próxima, se debe tener en cuenta en un método de instalación.

    Muy buenos consejos, gracias.
    Adecuada comentario, pero no una respuesta a la pregunta.
    Hay un buen caso de uso para esto, sin embargo. Podría ser malo para las pruebas se hacen para uno del otro, pero a veces podemos decir «si esto de la prueba falla, entonces no hay ningún punto en la ejecución de estos otros las pruebas, debido a que definitivamente van a fallar». En este caso, se ahorraría tiempo para ser capaz de especificar las dependencias que pueden ser omitidos.
    ¿Qué te hace pensar en la dependencia de solicitud de exámenes es «mal diseño»? Yo diría que es un mal diseño a poner todo su «programa de instalación» en una sola configuración de la función, debido a que algunos de la misma instalación puede ser algo que usted quiere y usted va a terminar con una monolítica de la función que va a ser más difícil de interpretar cuando se produce un error. Ver TestNG para una correcta aplicación de la prueba de dependencias: testng.org/doc/documentation-main.html#dependent-methods.

    OriginalEl autor Edward Z. Yang

  2. 3

    El problema que tengo con esto es la presentación de informes. Si DESEA/NECESITA para ver si cada método de prueba falla o pasa entonces estás JODIDO.

    Entiendo que tú no quieres una prueba de construir a partir de las pruebas anteriores, Pero independientemente de eso, puede haber situaciones en que usted necesita para hacer esto (o se puede aumentar la complejidad de la prueba en un orden de magnitud).

    Debe el flujo de pruebas en el código hasta que el desarrollador de las pruebas o el desarrollador del framework ?

    Mostrar prueba de JUnit código de 10 desarrolladores de java, y yo estaría dispuesto a apostar que la mayoría asume que las pruebas (independientemente de cualquier cosa externa) se ejecutan en el orden en que aparecen en la clase de prueba.

    No debería ser el comportamiento por defecto de JUnit ? (Me da la opción de decir que el orden en lugar de JUnit calcular hacia fuera» por su propia cuenta.)

    Actualización: 2014-11-18
    La más reciente versión de JUnit admite el método de clasificadores de

    //Esto ahorra las pruebas en orden alfabético
    @FixMethodOrder(MethodSorters.NAME_ASCENDING)

    Me gustaría pensar que usted podría ser capaz de crear su propio método clasificador de si «realmente» quería hacer su propio orden específico.

    El hecho de que junit tiene una mente de su propio es estúpido.. dime cuál es la mejor práctica es, no de la fuerza de MIERDA por mi garganta..

    OriginalEl autor Sir Geek

  3. 2

    Pruebas deben independiente del orden, pero algunas veces no tenemos lo que queremos.
    Si usted tiene un gran legado proyecto con miles de pruebas, y que depende de su orden de ejecución, que va a tener muchos problemas, cuando, por ejemplo, se va a intentar migrar a java 7, porque va a barajar todas las pruebas.

    Usted puede leer más acerca de este problema aquí:

    junit test de pedidos y java 7

    OriginalEl autor kornero

  4. 1

    Si es sólo dos métodos, a continuación, usted tendría que envolver en una sola unidad de prueba de que realmente no depende del orden.

    @Test
    public void testInOrder() throws Exception {
        testA(); 
        testB(); 
    }
    Yo ya trid esto, pero no satisfecho, creo que no podría haber otra manera de hacer esto.Gracias de todos modos.

    OriginalEl autor Jeremy

  5. 0

    utilice la siguiente configuración cosa antes y después de las pruebas

    @Before
    public void setUp() throws MWException {
    
    }
    
    @After
    public void tearDown() {
    
    }

    OriginalEl autor Andy B

Dejar respuesta

Please enter your comment!
Please enter your name here