Ho un test Junit che sta testando l'invio di messaggi jms. Sto usando Spring jmsTemplate per farlo. Qui come nel codice seguente, voglio verificare se il modello JMS ha chiamato send message indipendentemente da cosa si trova nei valori dei parametri actuall che vengono passati.Mockito - Uso non valido degli argomenti corrispondenti
mio metodo editore utilizza il jmsTemplate per inviare metodo sembra seguente dentro ..
jmsTemplate.send(jmsQueueProperties.getProperty(key), new MessageCreator()
{
public Message createMessage(Session session) throws JMSException
{
ObjectMessage obj = session.createObjectMessage(dialogueServiceResponse);
return obj;
}
});
nel mio test ..
JmsTemplate mockTemplate = Mockito.mock(JmsTemplate.class);
...
publisher.publishServiceMessage(response);
....
Mockito.verify(mockTemplate,
Mockito.times(1)).send("appointment.queue",
Mockito.any(MessageCreator.class));
Ma quando nell'esecuzione ottengo
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: utilizzo non valido dei parametri di confronto degli argomenti! ....
causa è dovuta a Mockito.any (MessageCreator.class), ma non c'è un modo per testare il mio metodo di invio sta ottenendo eseguita senza creare un oggetto reale nel MessageCreator.
Aggiornamento E c'è un modo per controllare la mia session.createObjectMessage (dialogueServiceResponse) è sempre chiamato così
simulare e non funzionare bene insieme. Quello di cui hai bisogno è creare un oggetto di spionaggio per la classe in cui desideri eseguire queste verifiche anziché limitarti a deriderlo. – 3xil3