Olá,
Vejo pessoas dizendo que usar TDD é bom principalmente quando se vai implementar uma nova funcionalidade que ainda não se sabe como vai ficar. Comigo é justamente o contrário. Só consigo usar TDD quando sei exatamente o que vou fazer.
Quando não sei como o código vai ficar e tento usar TDD, começo escrevendo o teste e ele falha, OK. Depois vou para a implementação e percebo que o teste não é nem um pouco realista, que a API não poderá ser aquela, as pré-condições são diferentes do que imaginei, etc. No fim das contas acabo reescrevendo o teste pra se adequar à implementação em vez de fazer a implementação passar nos testes.
Isso é comum? O que as boas práticas de TDD dizem sobre esse tipo de situação?