¡Hola! Hace poco intenté desarrollar un proyecto de tamaño pequeño en C#
y durante todo el proyecto, nuestro equipo utilizó la técnica Test-Driven-Development (TDD
) (xunit, moq
).C++ y TDD adecuado
Realmente creo que esto fue increíble, porque (cuando se combina con C#
) este enfoque permite relajar al codificar, relajarse al proyectar y relajarse al refacturar. Sospecho que todo esto TDD
-stuff realmente simplifica el proceso de codificación y, bueno, permitió (eventualmente, para mí) obtener el mismo resultado con menos células cerebrales funcionando.
Justo después de eso he intentado usar TDD
emparejado con C++
(utilicé Google Test
y Google Mock
bibliotecas), y, no sé por qué, pero en realidad creo que TDD aquí fue un paso atrás en términos de desarrollo rápido de aplicaciones.
Tuve algunos momentos en los que tuve que pasar grandes cantidades de tiempo pensando en mis pruebas, creando burlas, reconstruyéndolas y maldiciendo mi monitor.
Y, bueno, obviamente no puedo preguntar algo como "lo que hice mal?" o "¿qué estuvo mal en mi enfoque?", porque no sé qué describir. Pero si hay personas que están acostumbradas a TDD
en C++
(y, probablemente, C#
) también, podrían recomendarme cómo hacerlo correctamente.
Recomendaciones de marco, enfoques de arquitectura, consejos de codificación simple: si tiene experiencia en TDD & C++
, responda.
¿Puedes describir las diferencias más molestas entre la configuración que usaste para C# y la configuración de C++ & gmoc & gtest? He usado gmock + gtest para TDD en C++ y no puedo ver ninguna deficiencia de estas herramientas, pero no he usado xunit + moq en C# (demonios, no he programado tanto en C#), así que podría no saber lo que me estoy perdiendo. – chalup
Bueno, creo que 'jalf' en realidad escribió mi opinión. No puedo explicar esto en palabras mejor que él, pero cuando codificas en C# y escribes todas esas cosas de interfaz, etc., parece bastante 'nativo'. Cuando tratas de hacer lo mismo en C++, parece que intentas forzarte a usar algo realmente extravagante. Tal vez solo se trata de experiencia y de acostumbrarse a pensar de la manera correcta. –