Estou projetando e desenvolvendo código com o estilo TDD há muito tempo. O que me incomoda no TDD é escrever testes para código que não contém nenhuma lógica comercial ou comportamento interessante. Sei que o TDD é uma atividade de design mais do que testar, mas às vezes sinto que é inútil escrever testes nesses cenários.
Por exemplo, eu tenho um cenário simples como "Quando o usuário clica no botão de verificação, ele deve verificar a validade do arquivo" . Para esse cenário, geralmente começo a escrever testes para a classe apresentador / controlador, como a abaixo.
@Test
public void when_user_clicks_check_it_should_check_selected_file_validity(){
MediaService service =mock(MediaService);
View view =mock(View);
when(view.getSelectedFile).thenReturns("c:\\Dir\\file.avi");
MediaController controller =new MediaController(service,view);
controller.check();
verify(service).check("c:\\Dir\\file.avi");
}
Como você pode ver, não há decisão de design ou código interessante para verificar o comportamento. Estou testando valores da exibição passada para o MediaService. Normalmente escrevo, mas não gosto desse tipo de teste. O que você faz sobre essas situações? Você escreve testes o tempo todo?
ATUALIZAÇÃO:
Alterei o nome e o código do teste após as reclamações. Alguns usuários disseram que você deve escrever testes para casos triviais como esse, para que no futuro alguém possa adicionar um comportamento interessante. Mas e quanto a "Código para hoje, design para amanhã". ? Se alguém, inclusive eu, adicionar um código mais interessante no futuro, o teste poderá ser criado para ele. Por que devo fazer isso agora para os casos triviais?