Gerar uma Exception com Mockito

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!

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

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())

O que o WRYEL quer dizer é isso:

[code]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());

}
[/code]

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.