VRaptor3 Testando se uma ação redirecionou para alguma outra ação?
3 respostas
vintem
Pessoal,
estou tentando escrever testes unitarios para os meus controllers e me deparei com uma dificuldade.
Como eu testo se os métodos forwardTo ou redirectTo foram chamados no meu controller e para onde foram encaminhados/redirecionados?
o que dá pra fazer é mockar um proxifier (vc usa mocks? qual framework?) algo do tipo (exemplo usando mockito):
Proxifier proxifierMock = mock(Proxifier.class);
result = new MockResult(proxifierMock);
//roda sua lógica
verify(proxifierMock).proxify(eq(AlgumController.class), any(MethodInvocation.class));
isso pra saber se redirecionou pro controller AlgumController… agora pra verificar que um certo método foi chamado, daí vc tem que mockar o AlgumController, retorná-lo e verificar que o método foi chamado…
acho que ficou meio confuso, sry
vintem
E se eu quiser testar um caso como result.forwardTo("/controler/action"); ?
Lucas_Cavalcanti
vc não deveria usar strings acho que o vraptor nem deixa vc usar stings, se existir um controller que aceita a uri que vc passou…
em todo caso, vc pode mockar o Result (com o mockito, jmock, etc) e testar se o método forwardTo foi chamado com a string que vc quer