1

私は一緒に働いています

  • グラドル
  • 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
}
4

0 に答える 0