java - testonly - scalatest play framework
Cómo simular controladores/puntos finales de reposo para pruebas unitarias en Play Framework 2.x (1)
Estamos desarrollando un proyecto con Java en Play Framework 2.x y tenemos algunos puntos finales de descanso. También tenemos algunos casos de prueba para ellos como los siguientes:
@Test
public void testLogout() throws Exception {
FakeRequest request = new FakeRequest("GET", "/product/api/v1/logout");
Result result = route(request);
assertThat(status(result)).isEqualTo(OK);
assertThat(contentType(result)).isEqualTo("application/json");
assertThat(contentAsString(result)).contains("result");
}
Por otro lado, tenemos algunos métodos [como register()
] que no se pueden probar en la base de datos de producción.
¿Cuál es la forma correcta de probar los métodos que afectan la base de datos prod? Creo burlarse, pero no estoy seguro de eso y no sé cómo hacerlo. Si la burla es una buena opción, ¿hay algún ejemplo de trabajo?
Por favor, dame algunos consejos sobre este tema.
Creo que la forma correcta es no probar contra la base de datos de producción.
Divido las pruebas en 2 grupos, pruebas unitarias y pruebas de integración. Las pruebas unitarias son comúnmente conocidas, y en las pruebas de integración, pruebo todo lo que está fuera de la aplicación (por ejemplo, la base de datos) y las conexiones entre ellos.
Ejecuto las pruebas unitarias utilizando una base de datos simulada en memoria cuando sea necesario y pruebas de integración en una base de datos con la misma estructura que la base de datos de producción pero no la misma.
Espero que mi enfoque te ayude.