Pergunta

Sim, eu li as 'Questões relacionadas' na caixa acima depois que eu digitei esta =). Eles ainda não me ajudar tanto quanto eu gostaria, como eu entendo que a diferença entre os dois são -. Eu só não tenho certeza se eu precisar dele no meu caso específico

Então, eu tenho um aplicativo totalmente unidade testada (pequeno simples &). Eu tenho alguma classe 'trabalho' com um único pública método run () + ctors que leva em uma planilha do Excel como parâmetro, extrai os dados, verifica o banco de dados para ver se já temos esses dados, e se não, faz uma solicitação para um fornecedor de terceiros, leva essa resposta, coloca-o no banco de dados e, em seguida, conclui o trabalho (update db de novo)

Eu tenho IConnection para conversar com fornecedor, IParser para analisar excel / arquivos de fornecedores, IDataAccess fazer todo o acesso de banco de dados. Minha classe Job é magra e média e doesnt fazer muito lógica, embora na realidade ele está fazendo todas da lógica, ele é realmente apenas 'encadeamento ao longo' de dados por meio aos objetos compostos ...

Assim, todos os objetos compostos são unidade testada si, incluindo a DAL, e até mesmo o meu método run () na classe Job é uma unidade totalmente testado utilizando simulações para todos os caminhos de código possíveis ..

Assim - que eu preciso para fazer qualquer tipo de teste de integração, neste ponto, outro, em seguida, executar o aplicativo para ver se ele funciona? É o meu teste (s) do método run () com simulações considerado o meu teste de integração (s)? Ou devo dizer ao meu integração Teste de utilização reais instâncias em vez de simulações, em seguida, os valores do banco de dados Assert no final, com base na entrada conhecido planilha excel? Mas isso é o que todos os testes de minha unidade já estão fazendo (apenas em lugares separados, e o teste Run zombou garante que esses lugares 'Connect')! Seguindo a metodologia DRY, eu simplesmente não consigo ver a necessidade de fazer um teste de integração aqui ...

Estou faltando alguma coisa caras óbvias? Muito obrigado novamente ...

Foi útil?

Solução

Eu acho que a maior coisa que está faltando é o comportamento real de seus sistemas externos. Enquanto os testes de unidade pode certamente afirmar que os passos individuais executar a ação esperada, eles fazem pouco para revelar os problemas em tempo de execução que possam surgir ao acessar sistemas externos. Seus sistemas externos também podem conter dados que você não conhece.

Então, sim, eu acho que você precisa de ambos. Você não precisa necessariamente ser igualmente detalhado em ambos os testes. Às vezes, você pode simplesmente deixar o teste de integração ser um teste de fumaça

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top