barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 25 октября 2019 г.

soapUI: "Trying XBeans path engine... Trying XQRL... Trying delegated path engine... FAILED on declare namespace..."

Проблема

В groovy-скрипте, использующем com.eviware.soapui.support.XmlHolder, при попытке выполнить xpath-поиск по XML
def requestXml = new XmlHolder(requestText);
def result = requestXml["//*[local-name() = 'xxx']"]
возникает ошибка:
Trying XBeans path engine... Trying XQRL... Trying delegated path engine... FAILED on declare namespace...
Решение

Добавить в classpath библиотеки saxon-x.x.x.jar и saxon-dom-x.x.x.jar из инсталляции soapUI.

пятница, 18 октября 2019 г.

Mockito: проверка, что метод был вызван несколько раз с определенными аргументами

Задача

Есть некий мок-объект, нужно проверить, что некоторый его метод был вызван дважды, причем с определенными значениями аргументов.

Решение

Тут поможет argument capturing:
ArgumentCaptor<String> argsCaptor = ArgumentCaptor.forClass(String.class);
verify(myMockObj, atLeastOnce()).someMethod(argsCaptor .capture());
List<String> args= argsCaptor.getAllValues();
assertEquals(2, argsCaptor.size());       
assertTrue(argsCaptor.contains("arg1));
assertTrue(argsCaptor.contains("arg2));