2016-04-29 7 views
0

そののxmlns:NS1 =「http://thomas-bayer.com/blz/」Jaywayの残り-安心のXML supportを使用して、次のXMLでJaywayの残り-保証私は検証しようとしています

<?xml version="1.0" encoding="utf-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Body> 
    <ns1:getBankResponse xmlns:ns1="http://thomas-bayer.com/blz/"> 
     <ns1:details> 
     <ns1:bezeichnung>ABK-Kreditbank</ns1:bezeichnung> 
     <ns1:bic>ABKBDEB1XXX</ns1:bic> 
     <ns1:ort>Berlin</ns1:ort> 
     <ns1:plz>10789</ns1:plz> 
     </ns1:details> 
    </ns1:getBankResponse> 
    </soapenv:Body> 
</soapenv:Envelope> 

私はそれを理解し、

xmlns:ns1="http://thomas-bayer.com/blz/" 

@プレフィックスは @次の幹に一致する属性を返す必要があり

<ns1:getBankResponse 

属性です。

以下の全てがヌル戻ってきた、xmlString上記のSOAP応答XMLに等しいと仮定する:すべてのヘルプ

String nameSpace1 = given(xmlString).getString("[email protected]:ns1"); 
String nameSpace2 = given(xmlString).getString("[email protected]"); 
String nameSpace3 = given(xmlString).getString("[email protected]"); 
List<String> nameSpace = given(xmlString).get("Envelope.Body.getBankResponse[0][email protected]:ns1"); 
List<String> nameSpace = given(xmlString).get("Envelope.Body.getBankResponse[0][email protected]"); 
List<String> nameSpace = given(xmlString).get("Envelope.Body.getBankResponse[0][email protected]"); 

を大幅に理解されるであろう。

PS。安心できることは主にRESTful APIに関係していますが、SOAPをテストするために使用できることはわかっています。

答えて

1

REST Assured(おそらく2.9.1)の次期バージョンでは、XmlPathが名前空間を認識しないように設定できます。これは、あなたがこのように行うことができますを意味します

XmlPath xmlPath = new XmlPath(xmlResponse).using(xmlPathConfig().namespaceAware(false)); 
assertThat(xmlPath.getString("soapenv:Envelope.soapenv:Body.ns1:[email protected]:ns1"), equalTo("http://thomas-bayer.com/blz/")); 

あなたは、次のMavenのリポジトリを追加した後のバージョン2.9.1-SNAPSHOTに応じたことで、今日これを試してみることができます。

<repositories> 
     <repository> 
      <id>sonatype</id> 
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url> 
      <snapshots /> 
     </repository> 
</repositories> 
+0

ありがとうございます。ちょうど私が探していたもの。 – MikeJRamsey56

0

は、部分的に、このようにそれを解決:

XmlPath xmlPath = new XmlPath(xmlResponse).using(xmlPathConfig().declaredNamespace("ns1", "http://thomas-bayer.com/blz/")); 

// Then 

assertThat(xmlPath.getString("Envelope.Body.getBankResponse.ns1:details.ns1:bezeichnung.text()"), equalTo("ABK-Kreditbank")); 

私は部分的にそれがその名前空間にNS1を証明んがために使用されているので、それはそれは表示されません有効であると定義されなければならないと言う。

xmlns:ns1="http://thomas-bayer.com/blz/" 

URIを変更してもテストが引き続き行われるためです。

誰かが良い答えを持っていますか?

+0

現在リリースされたバージョンには、より良いオプションはありません(2.9.0)。 – Johan

関連する問題