¿Debo escribir una prueba para demostrar que eliminar un código corrige un error?

14

Ocasionalmente, me encontraré con una situación en la que para corregir un error es necesario que elimine una sección de código. El purista de TDD (supongo) abogaría por escribir una prueba fallida, eliminar el código y luego ver la prueba pasar.

Ahora, parece realmente extraño tener una prueba que afirme que se eliminó algún código. Claro, supongo que se aseguraría de que nadie investigara el control de origen y volviera a poner ese código, pero ¿vale la pena? Si vale la pena, ciertamente parece menos valioso que escribir una prueba para el código que se ha agregado , ¿verdad?

    
pregunta jhewlett 21.02.2013 - 06:21
fuente

1 respuesta

50

Lo estás viendo de la manera incorrecta. La prueba no afirma que el código se eliminó. La prueba afirma una cierta funcionalidad.

A la prueba no le importa la cantidad de código necesaria para hacerla pasar, ni se da cuenta de que ha eliminado algún código. El valor de tener una prueba de este tipo es el mismo que cualquier otra prueba que cree debido a un error: tiene confianza en la ausencia del error cuando la prueba pasa y la integración de la prueba en el proceso de compilación le asegura que el error lo más probable es que no sea reintroducido.

Otra forma de verlo desde una perspectiva TDD es la siguiente: cuando sepa que eliminar el código corrige el error y entonces se pregunta si escribir una prueba, ya hizo TDD incorrectamente. . Una vez que comience a trabajar en el error, debe primero escribir la prueba que asegure la presencia del error al fallar. Solo después, corrige el error real, que puede requerir eliminar el código o no, y se hace pasar la prueba. La pregunta que estás haciendo ni siquiera surge de esa manera.

    
respondido por el Frank 21.02.2013 - 07:18
fuente

Lea otras preguntas en las etiquetas