Gerar uma Exception com Mockito

3 respostas
B

Olá galera, seguinte

estou tentando realizar um teste aqui utilizando JUnit e Mock, e preciso que em determinada parte do processo uma Exception seja gerada. T tentando forçar essa Exception com o mockito mas ele simplesmente não gera.

Não sei o que posso estar fazendo de errado e mesmo pesquisando não consegui achar nada que me ajudasse.

Segue o trecho do código pra exemplificar:

private IComunicacaoRedecardBusiness comunicacaoRedecardBusiness = mock( IComunicacaoRedecardBusiness.class ); 

@Before
public void inicializa() throws Exception {
	when( comunicacaoRedecardBusiness.enviaDados(isA(PagamentoMastercardKomerciWSPojo.class), isA(String.class), isA(String.class)) ).thenThrow(new Exception());

}

Se eu entendi direito, era pra ele gerar a Exception quando o método ‘enviaDados’ do objeto ‘comunicacaoRedecardBusiness’ fosse chamado, correto?
Só que isso não acontece. E consequentemente meu teste falha.

Alguém poderia me dar uma luz?
Desde já eu agradeço!

3 Respostas

W

Descreva melhor o cenário que você precisa gerar a exception. Pelo que eu entendi, seria qualquer chamada … Não estou em casa, mas tente trocar os isA() por any() :slight_smile:

edit: não esqueça de colocar no expected do teste o Exception.class

[]'s

B

Obrigado por responder :slight_smile:

Bem, eu estou querendo uma Exception em qualquer situação… Toda vez que o método for chamado deve ser lançada a Exception!!

Não entendi a parte do trocar isA() por any()…até porque eu estou usando o throw(new Exception())

A

O que o WRYEL quer dizer é isso:

private IComunicacaoRedecardBusiness comunicacaoRedecardBusiness = mock( IComunicacaoRedecardBusiness.class );   
  
@Before  
public void inicializa() throws Exception {  
    when( comunicacaoRedecardBusiness.enviaDados(any(PagamentoMastercardKomerciWSPojo.class), any(String.class), any(String.class)) ).thenThrow(new Exception());  
  
}

No caso, o método enviaDados deve declarar essa checked exception na sua assinatura, porque o método não pode lançar uma exceção que não está declarada.

Criado 10 de julho de 2012
Ultima resposta 11 de jul. de 2012
Respostas 3
Participantes 3