Tengo el siguiente caso de prueba en eclipse, usando JUnit 4, que es negarse a pasar. Lo que podría estar equivocado?

@Test(expected = IllegalArgumentException.class)
public void testIAE() {
    throw new IllegalArgumentException();
}

Este exacto de la prueba se produjo cuando tratando de poner a prueba mi propio código con la espera de la etiqueta de no trabajo. Quería ver si JUnit iba a pasar a la más básica de la prueba. No.

También he probado con las excepciones personalizadas como se esperaba, sin suerte.

Captura de pantalla:
JUnit espera que la etiqueta no funciona como se espera

  • Esto es realmente extraño, hicieron algunas pruebas mí mismo, y de este código se ejecuta correctamente (la prueba es exitosa)…
  • He añadido una captura de pantalla, para mostrar sólo que… me gustaría ser dudoso demasiado.
InformationsquelleAutor Ben S | 2009-07-19

3 Comentarios

  1. 81

    El problema es que su AnnounceThreadTest extends TestCase. Porque se extiende la Prueba, la JUnit Corredor está tratando como un JUnit 3.8 prueba, y la prueba está en funcionamiento ya que se inicia con el examen de la palabra, para ocultar el hecho de que el @Test annotiation es, de hecho, no se utiliza en absoluto.

    Para solucionar este problema, quite el «extends TestCase» a partir de la definición de la clase.

    • Muchas gracias, este se fija como se anuncia.
    • Después de la eliminación de la extends TestCase, tuve que agregar el de importación adicional para asegurarse de que tenía la estática afirmar métodos. import static org.junit.Assert.*;
    • Impresionante trabajo en la búsqueda de la solución oculto como una sugerencia en una captura de pantalla
    • Solucionado!! Gracias, me ha salvado de algún tiempo.
    • Argggghhhh, acabo de pasar una hora y media en este asunto sin encontrar esta respuesta. Gracias, gracias, gracias!
    • La captura de pantalla es un enlace roto ahora, así que no pueden ver lo que la clase original que parecía. He encontrado que si he cambiado el nombre de mi clase y mis pruebas para que no comience con «prueba» de que de repente @Empezar las obras y «espera» también funciona. Gracias Yishai!
    • el original de la captura de pantalla muestra que la clase extendida de la Prueba. Supongo que es su problema así. No extender la Prueba, que es la JUnit 3.8 manera.

  2. 3

    Lugar de quitar extends TestCase , puede agregar esto a ejecutar el caso de prueba con Junit4 que admite la anotación.

    @RunWith(JUnit4.class)

  3. 2

    Encontré esto en IntelliJ utilizando JUnit 4.4:

       @Test(expected = IllegalArgumentException.class)
       public void testExpected()
       {
           throw new IllegalArgumentException();
       }

    Pasa a la perfección.

    Reconstruir todo su proyecto y pruebe de nuevo. Hay algo que estás haciendo mal. JUnit 4.4 funciona como se anuncia.

Dejar respuesta

Please enter your comment!
Please enter your name here