2016-05-05 10 views
0

私は、オブジェクトのリストを返すエンドポイントをテストしています。 現在、以下のコードに従って各要素を順番にテストしています。 明確にするために、コードを省略しています。私はmockMVCですが、.andExpect()でテストされている結果をループすることはできますか?

多くの要素と多くの属性があります。このコードは、私が.andExpect(周りにループをラップすることができます長いと醜い

public void testXxxOK() throws URISyntaxException, Exception { 
    when(thisCall).thenReturn(mockThis()); 
    when(thatCall).thenReturn(mockThat()); 
    mockMvc 
     .perform(get(relativePath(
      "/getStuffRestEndPoint?argument1=123&argument2=01-11-2001%200101Z")) 
       .accept(MediaType.APPLICATION_JSON)) 
     .andExpect(status().isOk()).andExpect(content().contentType(APPLICATIONJSON)) 
     .andExpect(jsonPath("$.dataList", hasSize(3))) 

     .andExpect(jsonPath("$.dataList[0].parameter1", is(0))) 
     .andExpect(jsonPath("$.dataList[0].parameter2", is("name0"))) 

     .andExpect(jsonPath("$.dataList[1].parameter1", is(1))) 
     .andExpect(jsonPath("$.dataList[1].parameter2", is("name0"))) 

     .andExpect(jsonPath("$.dataList[2].parameter1", is(2))) 
     .andExpect(jsonPath("$.dataList[2].parameter2", is("name0"))) 

    } 

を得ることができます)私は、パラメータの1つだけのリストを持っているように呼び出しますか?これが私の言うことです。これはどうすればいいですか?

for (i=0; i<size; i++) 
{ 
    .andExpect(jsonPath("$.dataList[i].parameter1", is(i))) 
    .andExpect(jsonPath("$.dataList[i].parameter2", is("name0"))) 
} 

答えて

0

それが容易になり、あなたの最初の呼び出しのgetResult()は結果を取得して、値をテストするために、結果に反復する場合。

1

はこれを行う方法のより良い方法があるかもしれませんが、私の頭の上から、あなたも試みることができる:

when(thisCall).thenReturn(mockThis()); 
when(thatCall).thenReturn(mockThat()); 
ResultActions actions = mockMvc 
    .perform(get(relativePath("/getStuffRestEndPoint?argument1=123&argument2=01-11-2001%200101Z")) 
    .accept(MediaType.APPLICATION_JSON)); 

for (i=0; i<size; i++) 
{ 
    actions = actions.andExpect(jsonPath("$.dataList[i].parameter1", is(i))) 
    actions = actions.andExpect(jsonPath("$.dataList[i].parameter2", is("name0"))) 
} 
関連する問題