La pregunta corta: ¿cómo se sigue el desarrollo impulsado por pruebas en un proyecto que abarca varios idiomas?
Específicamente, estoy escribiendo una aplicación web que usa JavaScript y PHP, y quiero seguir los principios de TDD, pero no estoy seguro de cómo integrarlos. ¿Ejecuto conjuntos de pruebas separados para las secciones JS y PHP, y uso simulacros en el conjunto JS para emular las respuestas del servidor? ¿Existe una técnica para la prueba unitaria de ambos componentes en una sola ejecución?
Esta es mi primera experiencia usando Test-Driven Development, por lo que cualquier consejo que pueda compartir sobre cómo hacerlo menos desalentador sería genial. La razón por la que lo elegí es que tan pronto como terminé un prototipo, los requisitos cambiaron, lo que me obligó a cambiar mi diseño. Pensé que si comenzaba de nuevo, me gustaría escribir un código más extensible con pruebas de regresión integradas desde el principio.
Estoy escribiendo mis pruebas de PHP en SimpleTest y mis pruebas de JavaScript en JsTestDriver. Estoy acostumbrado a los paradigmas orientados a objetos, así que tengo algunas clases en PHP, y estoy haciendo algo similar en JavaScript usando la herencia prototípica. También comencé a leer este libro sobre TDD en Python y este sobre TDD en JavaScript , pero por todo lo que he visto, estos no describen la prueba completa de una aplicación (aparte de usar algo como Selenium u otro controlador web para realizar pruebas de aceptación de front-end. ¿TDD simplemente no está hecho para desarrolladores full-stack?