Pergunta

Eu apenas comecei usando ASP.NET MVC e TDD. Eu li que, enquanto a unidade de teste que você deve se concentrar em testar o seu código, não outros sistemas, como o DB. No entanto, o que acontece quando a funcionalidade essencial é residente no DB?

Eu usei as séries MVC Storefront como um guia inicial em como configurar meus projetos e padrões. Como pesquisa de texto completo é essencial que eu configurá-lo como uma função no meu repositório

IQueryable<HealthOrganization> SearchOrganizations(string phrase);

Agora, a lógica desta pesquisa precisa de uma função com valor de tabela com texto completo e algumas outras funções no banco de dados. A lógica nessas funções é impossível obter exatamente correto no fakerepository. Qual é a sua recomendação sobre a melhor estratégia para teste de unidade isso e fazer TDD na busca?

Foi útil?

Solução

Este não é um teste de unidade, é um teste de integração. Então, você dificilmente pode implementá-lo TDD como.

Eu assumo que o código não fazer muito, mas chamar o banco de dados. Então você não tem que testar muito. Se você pode zombar a chamada de banco de dados no nível mais baixo, você pode testar se a chamada acontece. Se isso fica muito complicado, é melhor não escrever um teste de unidade para isso. Só vai ser difícil de manter.

Para escrever o teste de integração você precisa de um banco de dados real.

Outras dicas

Você pode criar um banco de dados de teste que contém um conjunto de itens conhecidos, então você verificar o código de pesquisa retorna os resultados esperados ..

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