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