Uma pergunta feita muitas vezes antes, mas com um desenvolvimento específico inclinado twds mvc.
Eu fui um garoto muito bom e codifiquei todas as minhas ações de controlador com testes de unidade correspondentes, o que tem sido ótimo (se um pouco [leia MUITO] repetitivo às vezes). Para ser sincero, na verdade eu criei um pequeno modelo T4 para escrever a maioria dos ossos dos testes unitários iniciais e, em seguida, aprimorei conforme apropriado conforme o uso. Admito não ter muita certeza de como lidar com testes em visualizações que contêm visualizações parciais - mas isso é uma história para outra pergunta.
Agora, a parte difícil para eu decidir é quão profunda deve ser a cobertura na minha camada de serviço. A razão é que alguns dos meus métodos de serviço (para melhor ou para pior) realmente executam uma variedade de consultas linq que fornecem informações discretas para a lógica subsequente dentro do método. Eu sei que eu poderia (deveria ??) quebrar esses métodos para chamar apenas a lógica necessária para cada instrução linq e aplicá-los no método. No entanto, em muitos casos, nunca há reutilização das 'funções' do linq e, portanto, parece que isso refatoraria o código muito longe.
O que estou perguntando é que, com lógica complexa ocorrendo dentro de um método, é "bom o suficiente" ter um método de teste que simplesmente afirme o resultado necessário e / ou erro esperado, ou todas as linhas lógicas devem ser simultâneas e testadas também. do jeito que estou vendo, para fazer o teste corretamente, a lógica do método (linha por linha) também deve estar recebendo algum tipo de cobertura. Isso, no entanto (na minha opinião ingênua), poderia levar a um ciclo interminável de tentar manter o teste e o método implementado tão intimamente alinhados (que eu sei que deveriam ser) a ponto de criar uma indústria caseira nos próprios testes.
Eu sei que minha pergunta pode ofender alguns dos devotos do TDD que verão isso como um acéfalo. Não estar no campo de TDD, este é um 'sim' para mim, daí a questão.
btw - havia verificado isso em busca de idéias:
olhando para a frente para os votos constantes agora :)
[editar] - para o benefício do eleitor único (bem, no momento único!) encerra. esta questão não é subjetiva. Estou à procura de consenso sobre um assunto muito focado. Não estou tentando despertar paixões negativas, não pretendo expor falhas na tecnologia - sou um grande fã. Portanto, envie um comentário educado para meu benefício, se a votação for encerrada, pois isso pode me ajudar a reestruturar a pergunta, se houver ambiguidade ou desinformação. esta pergunta poderia beneficiar grande parte da população de mvc.
obrigado!!
jim