Estoy aprendiendo TDD usando c #, por lo que sé, la prueba debería impulsar el desarrollo , es decir, primero escribir una prueba fallida después de escribir el código mínimo para pasar la prueba y luego refactorizar. Pero también se dice que " Programa a la interfaz, no a la implementación ", así...