我正在考虑使用 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' |