Pessoal,
estou tentando assegurar no teste que o método redirecione para outro metodo ou view especifica, porém não estou obtendo 100% de êxito, estou fazendo com mockito, segue a situação na prática:
CONTROLLER
public void grava(Aluno aluno) {
this.validator.validate(aluno);
validator.onErrorForwardTo(this).cadastra();
if(condicao qualquer) {
this.result.redirectTo(this).lista();
} else {
this.result.redirectTo(this).outroMetodo();
}
}
TESTE
@Test
public void gravaTest() {
Aluno aluno = new Aluno();
aluno.setNome("Jose");
this.controller.grava(aluno);
verify(this.result).redirectTo(this.controller);
}
meu result é um spy(new MockResult());
meu teste passa pois o metodo redirectTO é chamado…
porém quero verificar se o método lista() do controller foi chamado, então faço:
@Test
public void gravaTest() {
Aluno aluno = new Aluno();
aluno.setNome("Jose");
this.controller.grava(aluno);
doReturn(this.controller).when(this.result).redirectTo(this.controller);
verify(this.result).redirectTo(this.controller).lista();
}
mesmo colocando a linha doReturn… quando chamo verify(this.result).redirectTo(this.controller) é retornado null… logo recebo um nullPointerEx
alguem sabe como verificar se o método lista() está realmente sendo chamado ?
abrassss