Teste com JUnit - Ordenação dos testes

5 respostas
chun

Olá senhores,

Dúvida classica…

tenho meu Repositorio que tem metodo save() update() delete()… certo ?

Fiz um teste com JUnit…

tenho os metodos

@Test
… testeSave()…

@Test
… testeUpdate()…

@Test
… testeDelete()…

Em cada UM destes metodo tenho que criar um ambiente COMPLETO ?

Ex: Para testar Update eu tenho que ter “algo” adicionado… no metodo testUpdate eu TERIA que adicionar ANTES ou eu posso aproveitar o que o metodo testeSave já adicionou ? HEHEHEHE

Aproveitar é COSTUME ou é GAMBI ?

Valeu a ajuda :smiley:

5 Respostas

rmendes08

O JUnit foi desenhado para que cada teste seja independente. Tanto é assim que para cada método de teste executado, o JUnit cria uma nova instância da classe de teste. Se você precisa de tarefas que são comuns aos testes, como abrir conexão com o banco, inicializar a classe, etc., você pode colocar esse código em um método anotado com @Before. Método anotados com @Before são executados antes de cada um dos testes. Você anotar métodos com @After também, caso precise de alguma limpeza.

AlexandreGama

Boa!

@chun
Lembrando que se o seu código de teste faz testes direto no banco, existem outras soluções mais interessantes, “mockando” o seu banco.

Abs!

chun

AlexandreGama:

O JUnit foi desenhado para que cada teste seja independente. Tanto é assim que para cada método de teste executado, o JUnit cria uma nova instância da classe de teste. Se você precisa de tarefas que são comuns aos testes, como abrir conexão com o banco, inicializar a classe, etc., você pode colocar esse código em um método anotado com @Before. Método anotados com @Before são executados antes de cada um dos testes. Você anotar métodos com @After também, caso precise de alguma limpeza.

Boa!

@chun
Lembrando que se o seu código de teste faz testes direto no banco, existem outras soluções mais interessantes, “mockando” o seu banco.

Abs!

Eu vou utilizar Mocks apenas nos Servicos… nos repositorios preciso validar junto com o EntityManager (to testando sintexes , etc…)… se eu mockar o EntityManager vai dar ZICA.

Mas entendi :slight_smile:

AlexandreGama

Na verdade quis dizer um “mock da base” mesmo, usando um DBUnit da vida por exemplo. = )

Abs!

HeloisaCarvalho

Eu prefiro utilizar uma classe que possui métodos que são utilizados em varios @tests. Isso evita duplicidade e deixa seu código mais organizado, alem do trabalho que é polpado. Na sua classe test você só chamaria o método, uma linha de código.

Criado 16 de maio de 2012
Ultima resposta 7 de out. de 2012
Respostas 5
Participantes 4