A maior parte da lógica do meu serviço da web envolve conversar com os serviços da web do nosso fornecedor (verificar disponibilidade, fazer pedidos etc.) Eles não têm um ambiente de teste e a maioria das chamadas não pode ser executada arbitrariamente (por exemplo, uma interrupção seria executada uma vez e iria realmente parar um serviço).
É possível executar testes de unidade nesse ambiente? Eu poderia simular respostas típicas, mas estou preocupado que as respostas codificadas dos fornecedores prejudiquem o ponto dos testes de unidade.
fonte
O teste de unidade também fornecerá uma especificação executável inequívoca do comportamento que você espera de seus fornecedores. Isso provavelmente tornará a comunicação com eles muito mais fácil.
Se houver algum problema na interação entre o seu e o deles, você poderá fornecer a eles seus testes de unidade para indicar claramente qual o comportamento que seu código espera. Se o código deles não funcionar da mesma maneira que os testes de unidade, as diferenças geralmente são fáceis de identificar.
fonte
ROI
Esta é realmente uma questão de retorno do investimento. Você acha que investir em testes de unidade vale o que você receberá? Ou seja, seu código foi testado isoladamente . Bem como todos os outros benefícios do teste de unidade.
Você pode contrastar isso com, digamos, uma abordagem de teste de aceitação automatizada, na qual você obteria uma conta de teste do seu fornecedor, na verdade, testando o sistema integrado com os testes. O custo de fazer o ATDD vale o que você recebe de volta. Ou seja, teste do sistema como um todo.
Cabe a você fazer a análise e descobrir se deve fazer testes de unidade, testes de aceitação automatizados, ambos, nenhum ou qualquer outra coisa.
fonte