Teste com JUnit - Ordenação dos testes

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:

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!

[quote=AlexandreGama][quote]
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.
[/quote]

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![/quote]

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:

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

Abs!

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.