Использование FitNesse для тестирования API-интерфейсов RESTful с использованием RestFixture и анонимных пространств имен - PullRequest
1 голос
/ 05 января 2011

Я рассматриваю возможность использования FitNesse для написания некоторых приемочных тестов для некоторых расширений RESTful API. Ответ GET включает в себя XML в анонимном пространстве имен, например,

<?xml version="1.0" encoding="utf-8"?>
<things xmlns="http://example.com/ns/">
<thing id="1"/>
<thing id="2"/>
</things>

Приспособление FitNesse RestFixture кажется хорошим кандидатом для этого. Это должно позволить мне запустить XPath для проверки ответа, но, похоже, это не очень хорошо работает с анонимными пространствами имен. Следующий тест не пройден, так как необходимо указать пространство имен:

|!-smartrics.rest.fitnesse.fixture.RestFixture-!|http://example.com/v1.0/inbox |
|GET    | /things | 200 | | //thing |

Я не могу найти способ выразить XPath так, чтобы RestFixture успешно его проанализировал.

Пара заметок:

(a) Вы можете запрашивать атрибуты, потому что они не находятся в пространстве имен. Следующие передачи:

|GET    | /things | 200 | | //@id |

(b) В другом месте предложено использовать сопоставление строк. Это неправильно - следующие передачи тоже!

|GET    | /things | 200 | | 'complete and utter nonsense' |

1 Ответ

4 голосов
/ 18 января 2011

RestFixture теперь поддерживает пространства имен.Вам необходимо определить контекст пространства имен как карту значений ключей псевдонима / пространства имен uri, используя RestFixtureConfig (сюда также должен входить псевдоним для пространства имен по умолчанию).

Затем вы можете использовать псевдонимы, определенные в xpath, которые соответствуют телу ответа на запрос, или в команде let (), чтобы извлечь данные из ответа.

Примервключены в оперативную документацию отдыха приспособления:

https://github.com/smartrics/RestFixture/downloads (проверьте загружаемый HTML RestFixture- .html

...