He estado diseñando y desarrollando código con estilo TDD durante mucho tiempo. Lo que me molesta acerca de TDD es escribir pruebas para el código que no contiene ninguna lógica comercial o comportamiento interesante. Sé que TDD es una actividad de diseño más que pruebas, pero a veces siento que es inútil escribir pruebas en estos escenarios.
Por ejemplo, tengo un escenario simple como "Cuando el usuario hace clic en el botón de verificación, debería verificar la validez del archivo" . Para este escenario, generalmente comienzo a escribir pruebas para la clase de presentador / controlador como la siguiente.
@Test
public void when_user_clicks_check_it_should_check_selected_file_validity(){
MediaService service =mock(MediaService);
View view =mock(View);
when(view.getSelectedFile).thenReturns("c:\\Dir\\file.avi");
MediaController controller =new MediaController(service,view);
controller.check();
verify(service).check("c:\\Dir\\file.avi");
}
Como puede ver, no hay una decisión de diseño o un código interesante para verificar el comportamiento. Estoy probando valores desde la vista pasada a MediaService. Normalmente escribo pero no me gustan este tipo de pruebas. ¿Qué haces con estas situaciones? ¿Escribes exámenes todo el tiempo?
ACTUALIZACIÓN
He cambiado el nombre y el código de la prueba después de las quejas. Algunos usuarios dijeron que debería escribir pruebas para los casos triviales como este para que en el futuro alguien pueda agregar un comportamiento interesante. Pero, ¿qué pasa con "Código para hoy, diseño para mañana". ? Si alguien, incluido yo mismo, agrega un código más interesante en el futuro, entonces se puede crear la prueba para ello. ¿Por qué debería hacerlo ahora para los casos triviales?