我正在考虑使用FitNesse为RESTful API的某些扩展编写一些验收测试。 GET响应在匿名名称空间中包括XML,例如使用FitNesse使用RestFixture和匿名命名空间测试RESTful API
<?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将成功地解析它的方式。
有两点要注意:
(一),因为它们在命名空间不是您可以查询的属性。以下通过:
|GET | /things | 200 | | //@id |
(b)其他地方使用字符串匹配的示例。这是错误的 - 下面的传球也是!
|GET | /things | 200 | | 'complete and utter nonsense' |
我发现使用XPath局地一个丑陋的解决方法例如,//* [local-name(.)='thing'][@id="2“]应该工作 – MrBlueSky 2011-01-06 16:01:21
作为参考,我也在原始RestFixture作者的博客上提出了这个问题: http://smartrics.blogspot.com/2008/08/get-fitnesse-with-some-rest.html – MrBlueSky 2011-01-07 09:14:58