A curta pergunta: como você segue o desenvolvimento orientado a testes em um projeto que abrange vários idiomas?
Especificamente, estou escrevendo um aplicativo da Web que usa JavaScript e PHP e quero seguir os princípios do TDD, mas não tenho certeza de como integrá-los. Executo conjuntos de testes separados para as seções JS e PHP e uso zombarias no conjunto JS para emular as respostas do servidor? Existe uma técnica para testar a unidade dos dois componentes em uma execução?
Esta é a minha primeira experiência usando o Test-Driven Development, portanto, qualquer conselho que você possa compartilhar sobre como torná-lo menos assustador seria ótimo. A razão pela qual escolhi é que, assim que terminei um protótipo, os requisitos foram alterados, forçando-me a alterar meu design. Imaginei que, se estou começando de novo, gostaria de escrever um código mais extensível com testes de regressão integrados desde o início.
Estou escrevendo meus testes de PHP no SimpleTest e meus testes de JavaScript no JsTestDriver. Estou acostumado a paradigmas orientados a objetos, por isso tenho algumas classes em PHP e estou fazendo algo semelhante em JavaScript usando herança de protótipo. Também comecei a ler este livro sobre TDD em Python e este sobre TDD em JavaScript , mas, pelo que vi, eles não descrevem o teste completo de um aplicativo (além de usar algo como Selenium ou outro driver da web para executar testes de aceitação de front-end O TDD não é um recurso adequado para desenvolvedores de pilha completa?