Asegurémonos de que todas las pruebas sigan la regla de Arrange-Act-Assert y que el nombre coincida con esas tres partes.
No es necesario que el nombre de la prueba incluya la palabra 'test'. JUnit no lo necesita (ya tiene la annotation para identificarla).
Tratemos de seguir las recomendaciones de acá y acá.
Por ejemplo, veamos esta prueba:
@Test
public void testJugadorApresadoIntentaAvanzarYNoPuede() {
Carcel carcel = new Carcel();
Jugador jugador = new Jugador();
carcel.apresarJugador(jugador);
Assert.assertNotNull(carcel);
}
El nombre de la prueba no tiene nada que ver con lo que se está probando.
Lo que hace esta prueba es instanciar las clases Carcel y Jugador y enviarle un mensaje a la instancia de carcel con la instancia de jugador como parámetro y finalmente lo único que verificamos es que la instancia de carcel no sea Null. WTF?
Por lo general no tiene mucho sentido probar que una clase recién instanciada no sea Null dado que es algo muy trivial y no aporta nada. El assertNotNull es muy útil cuando tenemos que probar que recibimos algo de algún objeto que desconocemos qué puede llegar a devolver.
Tratemos de seguir las recomendaciones de acá y acá.
Por ejemplo, veamos esta prueba:
assertNotNull
es muy útil cuando tenemos que probar que recibimos algo de algún objeto que desconocemos qué puede llegar a devolver.