2017-07-27 16 views
0

jsonPathを使用して安心してJSON配列から値を抽出しようとしています。安心:JSONからの値の抽出

例JSONレスポンス:

{ 
    "notices": [], 
    "errors": [ 
     { 
      "code": "UNAUTHORIZED" 
     } 
    ] 
} 

現在のテストは以下の通りです:しかし、私は私のエラーコードの周りに[]得続ける

@Test(dataProvider = "somePayLoadProvider", dataProviderClass = MyPayLoadProvider.class) 
public void myTestMethod(SomePayload myPayload) { 
    Response r = given(). 
      spec(myRequestSpecification). 
      contentType(ContentType.JSON). 
      body(myPayload). 
      post("/my-api-path"); 

    List<String> e = r.getBody().jsonPath().getList("errors.code"); 
    assertEquals(e, hasItem(MyErrorType.UNAUTHORIZED.error())); 
} 

。私は値が好きです。

java.lang.AssertionError: expected 
[a collection containing "UNAUTHORIZED"] but found [[UNAUTHORIZED]] 

Expected :a collection containing "UNAUTHORIZED" 
Actual :[UNAUTHORIZED] 

答えて

0

明らかにこれは私がassert()メソッドを正しく使用していなかったことです。

assertTrue(e.contains(MyErrorType.UNAUTHORIZED.error()));

ArrayList<String>

に正しく行われたJSONの解析を

assertEquals(e, hasItem(MyErrorType.UNAUTHORIZED.error()));

を変更します

関連する問題