我正在考虑使用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' |
答案 0 :(得分:4)
RestFixture现在支持名称空间。 您需要使用RestFixtureConfig将名称空间上下文定义为alias / namespace uri的键值映射(这也必须包含默认名称空间的别名)。
然后,您可以使用与请求的响应主体匹配的xpath中定义的别名,或者在let()命令中,从响应中提取数据。
示例包含在rest-fixture的实时文档中:
https://github.com/smartrics/RestFixture/downloads(查看可下载的html RestFixture-&lt; ver&gt; .html