Para a aplicação Web eu uso o Interceptor do VRaptor para abrir e fechar as transações.
E quando vou rodar o teste no JUnit? Quem abrirá e fechará as transações? Qual a alternativa que pode ser utilizada?
você mesmo abre e fecha a transação nos testes, no @Before e no @After
Teria como alguém disponibilizar um exemplo de como ficaria uma classe de LoginControllerTest para testar o método logout da classe LoginController indicada abaixo?
Como faço para já trazer os atributos result, usuario, e validator já carregado na minha classe de Teste, não sei como fazer.
@Resource
public class LoginController {
private Result result;
private Usuario usuario;
private final Validator validator;
private HttpSession httpSession;
public LoginController(Result result, Usuario usuario,
Validator validator) {
this.result = result;
this.usuario = usuario;
this.validator = validator;
}
@Get("/logout")
public void logout() {
usuario.loggout();
result.redirectTo(this).login();
}
}
você pode usar uma biblioteca de mock como o Mockito https://code.google.com/p/mockito/
tem vários exemplos de como usá-lo nos próprios testes do VRaptor