私は一緒に働いています
- グラドル
- Spring MVC テスト
- スポック・コア
- スポックスプリング
- スポックレポート
一部の仕様では、次のものがあります。
私は次のことができました:
def ResultActions resultActions // instance variables
def MockHttpServletResponse mockHttpServletResponse // instance variables
…
@Unroll(value="#methodNameReport Expected")
def "something"(){
….
when: "GET"
resultActions = mockMvc.perform(get(url, PersonaControllerHelper.ID)).andDo(print())
mockHttpServletResponse = resultActions.andReturn().getResponse()
println mockHttpServletResponse
println mockHttpServletResponse.getStatus()
}
ここまでは、安心してMockHttpServletResponse
クラスに参加し、データを印刷できます。したがって、 nullMockHttpServletResponse
ではありません 。
でもその後:
where: "."
urlReport << [PersonaXmlFindOneWithProducesControllerTemplateFactory.findOneRequestParamById(PersonaControllerHelper.ID)]
classNameReport << [PersonaXmlFindOneWithProducesController.class.getSimpleName()]
methodNameReport << ["findOneRequestParamById"]
statusReport << [mockHttpServletResponse.getStatus()]
mediaTypeReport << [MediaType.APPLICATION_XML_VALUE]
私は得る
PersonaXmlFindOneWithProducesControllerTest.groovy: 90:
Only @Shared and static fields may be accessed from here @ line 90, column 21.
statusReport << [mockHttpServletResponse.getStatus()]
変数をstaticまたは@Sharedで宣言しても
私は得る
…..PersonaXmlFindOneWithProducesControllerTest > findOneRequestParamById Expected FAILED
java.lang.NullPointerException at PersonaXmlFindOneWithProducesControllerTest.groovy:90
すばらしい NullPointerException です。
どのような構成設定が必要ですか?
アルファ
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
def String url
def String urlReport
def String methodNameReport
def String statusReport
def ResultActions resultActions
def @Shared MockHttpServletResponse mockHttpServletResponse
def setup(){
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
@Unroll(value="#methodNameReport Expected")
def "findOneRequestParamById Expected"(){
given: "URL: #urlReport"
url = PersonaXmlFindOneControllerURLURIFactory.findOneRequestParamById()
when: "GET"
resultActions = mockMvc.perform(get(url, PersonaControllerHelper.ID)).andDo(print())
mockHttpServletResponse = resultActions.andReturn().getResponse()
println mockHttpServletResponse //prints
println mockHttpServletResponse.getStatus() //prints
then: "Exists - Status: #statusReport"
resultActions.andExpect(status().isOk())
where: "."
urlReport << [PersonaXmlFindOneControllerTemplateFactory.findOneRequestParamById(PersonaControllerHelper.ID)]
methodNameReport << ["findOneRequestParamById"]
statusReport << [mockHttpServletResponse.getStatus()] // Fails
}