Estou utilizando o Mockito para testes unitários.
Em uma determinada regras de negócio, utilizo duas consultas. Quando tento fazer o mock de duas consultas, ele sempre pega o último mock. Como faço para que o teste identifique quais consultas devem buscar ?
when(crudService.find(anyMapOf(String.class, Object.class), Matchers.<Class<NotaFiscal>> any())).thenReturn(retornoNotaFiscal());
when(crudService.find(anyMapOf(String.class, Object.class), Matchers.<Class<Pessoa>> any())).thenReturn(retornoPessoa());
Acho que seu problema é na forma que usa o Matchers. Tente passar a classe como parâmetro do método any:
Matchers.any(NotaFiscal.class)
Matchers.any(Pessoa.class)
Obrigado, mas não deu.
Fiz assim:
when(crudService.find(anyMapOf(String.class, Object.class), Matchers.any(NotaFiscal.class))).thenReturn(retornoNotaFiscal());
Mas da este este erro no eclipse.
The method find(Map<String,Object>, Class<T>) in the type CrudService is not applicable for the arguments (Map<String,Object>, NotaFiscal)
Ah, seu método find recebe como parâmetro uma classe, nao um objeto específico. Tenta:
when(crudService.find(anyMapOf(String.class, Object.class), Matchers.eq(NotaFiscal.class))).thenReturn(retornoNotaFiscal());