Я использую в моих тестах Java 2.8. Когда я создаю xmlPath из остального гарантированного ответа String и пытаюсь создать список узлов, я получаю исключение, если List содержит только один элемент.Невозможно создать Список <Node> объект, когда список содержит один элемент
List<Node> nodeList = xmlPath.getList("commentary.messages.period.message", Node.class);
Это должно дать мне список с одного элемента, но вместо этого я получаю исключение
Cannot convert class java.lang.String to interface com.jayway.restassured.path.xml.element.Node. java.lang.ClassCastException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408) at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) at com.jayway.restassured.internal.path.ObjectConverter.convertObjectTo(ObjectConverter.groovy:54) at com.jayway.restassured.path.xml.XmlPath.convertObjectTo(XmlPath.java:913) at com.jayway.restassured.path.xml.XmlPath.getAsList(XmlPath.java:879) at com.jayway.restassured.path.xml.XmlPath.getList(XmlPath.java:348) at com.performgroup.usbasketballbackend.sprint26.USBask382Test.checkPlayerMainEventWithQualifierMessagesComments(USBask382Test.java:125)
Когда у меня есть 2 элемента я не получаю это исключение. Пожалуйста, помогите :)
Ниже представлена структура xml, и если есть один узел сообщения, он не создает список с одним элементом.
<commentary xmlns:basketballdata="www.nba.com">
<matchInfo>
<description>Oklahoma City Thunder vs Houston Rockets</description>
<sport id="456">basketball</sport>
<competition id="1" name="NBA">
<country id="123" name="USA"/>
</competition>
</matchInfo>
<messages>
<period id="1">
<message id="123" homeScore="0" awayScore="0"/>
</period>
</messages>
</commentary>
Но если у меня есть 2 узла сообщений, он создает список из 2 элементов.
<commentary xmlns:basketballdata="www.nba.com">
<matchInfo>
<description>Oklahoma City Thunder vs Houston Rockets</description>
<sport id="456">basketball</sport>
<competition id="1" name="NBA">
<country id="123" name="USA"/>
</competition>
</matchInfo>
<messages>
<period id="1">
<message id="123" homeScore="0" awayScore="0"/>
<message id="456" homeScore="2" awayScore="0"/>
</period>
</messages>
</commentary>
Можете ли вы показать образцы данных, которые вызывают исключение, и тот, который этого не делает? – nolexa
Я добавил образец xml. Надеюсь, это поможет. – BadNews
Я думаю, что это ошибка/особенность, один элемент - не список, два или более - список. Catch class cast exception и получить как один элемент – Rustam