Tôi có kiểm tra Junit đang kiểm tra gửi tin nhắn jms. Tôi đang sử dụng Spring jmsTemplate để làm điều này. Ở đây tôi như trong đoạn mã sau tôi muốn kiểm tra xem mẫu JMS có được gọi là tin nhắn gửi không phụ thuộc vào giá trị của các tham số actuall được truyền đi.Mockito - Sử dụng đối sánh đối sánh không hợp lệ
phương pháp xuất bản của tôi sử dụng jmsTemplate để gửi phương pháp trông giống như sau bên trong ..
jmsTemplate.send(jmsQueueProperties.getProperty(key), new MessageCreator()
{
public Message createMessage(Session session) throws JMSException
{
ObjectMessage obj = session.createObjectMessage(dialogueServiceResponse);
return obj;
}
});
trong các thử nghiệm của tôi ..
JmsTemplate mockTemplate = Mockito.mock(JmsTemplate.class);
...
publisher.publishServiceMessage(response);
....
Mockito.verify(mockTemplate,
Mockito.times(1)).send("appointment.queue",
Mockito.any(MessageCreator.class));
Nhưng khi trong việc thực hiện tôi nhận được
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Sử dụng đối sánh đối sánh không hợp lệ! ....
Nguyên nhân là do Mockito.any (MessageCreator.class), nhưng không có một cách để kiểm tra phương pháp gửi của tôi là nhận được thực hiện mà không cần tạo một đối tượng thực tế trong MessageCreator.
Cập nhật Và đó là một cách để kiểm tra tôi session.createObjectMessage (dialogueServiceResponse) là nhận được gọi là tốt
giả lập và xác minh không hoạt động tốt với nhau. Những gì bạn cần là tạo một đối tượng gián điệp cho Lớp bạn muốn chạy các xác minh này thay vì chỉ chế nhạo nó. – 3xil3