2011-01-05 10 views
1

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 fixture RestFixtureがこれに適しているようです。私は応答を確認するためにXPathを実行する必要がありますが、これは匿名の名前空間でうまく動作するようには見えません。次のテストは失敗しますので、名前空間の指定が必要です。

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

私はRestFixtureが正常にそれを解析することをXPathは、このような表現のない方法を見つけることができません。

ノートのカップル:彼らは名前空間ではないだから

は、(a)はあなたが属性を照会することができます。次のようになります。

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

(b)文字列一致を使用して他の例が示唆されています。これは間違っています。

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

.HTML私はXPathを使用して醜い回避策を見つけたローカルから例えば、//*[local-name(.)='thing'][@id="2 "]は動作するはずです – MrBlueSky

+0

参考までに、私はオリジナルのRestFixture作者のブログでもこの質問をしました: http://smartrics.blogspot.com/2008/08/get-fitnesse-with-some-rest.html – MrBlueSky

答えて

4

RestFixtureが名前空間をサポートするようになりました。 RestFixtureConfigを使用して、名前空間コンテキストを別名/名前空間uriのキー値マップとして定義する必要があります(これには、デフォルトの名前空間の別名も含める必要があります)。

次に、要求の応答本体またはlet()コマンドで一致するxpathに定義されている別名を使用して、応答からデータを抽出できます。

例が残り、治具のライブドキュメントに含まれています:

https://github.com/smartrics/RestFixture/downloads(ダウンロード可能なHTML RestFixture- <版をご確認ください>

関連する問題