Quando os testes devem envolver o banco de dados?

Pessoal, sabemos que há uma certa infra para testar o banco de dados (configuração que muda de servidor para servidor, dados podem mudar tambem, transacoes sao dificeis de testar e devem independentemente, serem removidas ao fim do teste, etc…), assim eu pergunto: quando devemos testar com dados de um DB nossos unit tests?
obrigadoo

[quote=MrDataFlex]assim eu pergunto: quando devemos testar com dados de um DB nossos unit tests?
obrigadoo[/quote]

Não sei te dizer, mas nesses casos geralmente é usado mock para satisfazer as dependências de um método para execução do teste unitário.

Nesse caso os dados serão forjados, mas o que importa é a integridade da implementação, e nesse caso isso é contemplado no teste, ainda com a possibilidade de automatização de execução do mesmo, sem depender de outros ambientes ou softwares… em outras palavras, o código será testado sem depender de servidor de aplicação rodando, banco de dados, WS externos, etc…

Cara, eu to acabando de ler o o livro: “Test-Driven Development By Example - Kent Beck”. Ele é maneiro, dá uns conceitos bacanas.

Eu não vi a necessidade de se testar dados vindos do banco. Pois, já trabalhei com TDD em que os dados eram inseridos no banco para o teste ser feito. Aí é que está o problema. Qual seria a diferença de:

INSERT INTO CLIENTES (NOME) VALUES (‘JOSE’);

ou

Cliente cliente = new Cliente(“JOSE”);

Vc vai estar simulando e garantindo a mesma coisa.

Talvez, se a sua preocupação seja saber se os dados estão vindo corretos ou não, faça uns 2 ou 3 testes para realizar a busca e validá-las.