1
resposta

TDD COM BANCO DE DADOS

Estou a praticar TDD e exercitando além das atividades da ementa do curso (Que utiliza apenas dados em memória sem a integridade física/banco de dados).

Quanto a criação de testes de unidade com banco de dados, digamos em um exemplo onde possuo duas classes de objetos (Pessoa e Documento - onde uma pessoa pode ter vários documentos e um documento pertence a apenas uma pessoa). Os passos para executar o teste, foram respectivamente, criar o cenário, salvar no banco de dados, buscar os registros salvos e comparar com o cenário estabelecido e então excluir os dados do banco (para não acumular informação de testes).

A questão é: implementei cinco testes unitários validando-os, e após, tive que implementar o sexto teste unitário. Este sexto teste fez com que os primeiros cinco, falhassem na validação dos dados e consequentemente deixando-os na base de dados (sem executar a parte de exclusão). Uma alternativa seria colocar um bloco try/finally para sempre executar a exclusão. Isso não me parece ser o correto e muito menos a preocupação com os dados esquecidos na base.

Qual a melhor forma para trabalhar com banco de dados? Tem algum material ou exemplo relacionado?

Desde já, grato pela atenção. Fica a sugestão para um futuro curso também.

1 resposta

Oi Leomar, pode deixar no finally sim... vc pode criar um método com @After justamente para limpar o banco antes de cada execução também.

Testes que envolvem banco de dados são chatos mesmo...