Мы используем инфраструктуру с поддержкой REST для выполнения некоторого модульного/интеграционного тестирования в Java.
Ответ XML от службы REST подобен этому:
<?xml version="1.0" encoding="UTF-8"?>
<Items xmlns="urn:service:com:namespace:item/1"
returned="3" found="3">
<ItemRef object="urn:svc:com:car:item:123456" type="door">door-123456.pdf</ItemRef>
<ItemRef object="urn:svc:com:car:item:983425" type="mirror">mirror-43562577.pdf</ItemRef>
<ItemRef object="urn:svc:com:car:item:983425" type="wheel" >door-94584854.pdf</ItemRef>
</Items>
В моем тесте мне интересно проверить количество возвращаемых элементов, прочитав атрибут returned
следующим образом.
givenOK()
.expect()
.body("Items.@returned", equalTo("3")) // this is a string
.when()
.get(myurl)
И это хорошо работает
Теперь я также хочу контролировать правильность URN в xmlns с той же логикой:
givenOK()
.expect()
.body("Items.@returned", equalTo("3")) // this is a string
.body("Items.@xmlns", equalTo("urn:service:com:namespace:item/1"))
.when()
.get(myurl)
Но когда мой тест выполняется, выражение Items.@xmlns
кажется не возвращающим значение атрибута, а пустым: []
Любая идея, почему это не работает?