Estou fazendo TDD há um ano, me sinto muito bem com isso, amo minhas suítes de teste e tudo mais. No entanto, notei que ultimamente tenho feito muita verificação de chamadas falsas. Por exemplo, eu teria um Serviço que terá um Repositório injetado - no meu teste de unidade, passaria uma simulação do Repositório e verificaria se ele foi chamado dentro do método que estou testando. Eu verificaria se os resultados retornados estão corretos (em outro teste). Definitivamente, isso "parece" errado, pois meus testes de unidade agora estão muito acoplados aos detalhes da implementação. Ouvi dizer que você deveria testar o "comportamento", no entanto, em muitas situações que ... emm - não é possível? Se você tem umvoid
Por exemplo, você costuma testar efeitos colaterais. Quero dizer, é fácil seguir em frente e mostrar alguns códigos-katas simples, onde isso pode ser demonstrado, mas IMHO não reflete muito bem os programas do mundo real que escrevemos. O que estou fazendo de errado? Esse tipo de teste é um anti-padrão? Eu apreciaria sua opinião sobre isso, ainda sou um pouco novato no que diz respeito ao TDD.