Я запускаю тест на своем классе с использованием Mockito. Тест проверяет, что вызывается метод, называемый postMessage (destination, messageString).Метод mockito, называемый дважды
Мой тест направлен на проверку того, что в зависимости от содержимого сообщения postMessage() вызывается один или два раза.
Проблема у меня в том, что в моем классе у меня есть 2 вызова postMessage(). Разница между двумя вызовами - это назначение - вызовы отправляют сообщение в 2 разных адресата.
например.
1. postMessage(destination-1, message)
2. postMessage(destination-2, message)
Когда я звоню проверить с 1 раза, как и
//actually called twice because of destination-1 and destination-2
verify(sender, times(1)).postMessage(Mockito.<javax.jms.Destination>.any(), Mockito.<String>.any());
фактическое число 2. Я знаю, что число 2 является правильным, потому что это в два раза называется, но я хочу, чтобы изолировать тест на только метод, вызванный с пунктом назначения-2.
Кроме того, когда я хочу проверить, что postMessage() называется нулевым временем (сообщение не отправлено), мой тест будет справедливо утверждать, что postMessage() был вызван один раз - это потому, 1.
//actually called once because of destination-1
verify(sender, times(0)).postMessage(Mockito.<javax.jms.Destination>.any(), Mockito.<String>.any());
Так что мой вопрос - как я могу изолировать мой тест, чтобы испытывать именно то, что я хочу, а не поведение моего первого обращения к PostMessage()?
Что такое '' destination-1''/'' 2''? Кажется, это целое число для меня ... –
Почему вы используете 'Mockito. .any()', если вы не хотите сопоставлять _any_ Destination? Вместо этого используйте 'eq (destXYZ)', а «destXYZ» - ваш пункт назначения для тестирования. –
Tom
Как насчет разделения метода, который вызывает 'postMessage' для адресата-1 и пункта назначения-2 на два отдельных метода. Затем проверьте количество вызовов каждого метода отдельно. –