Извлеките содержимое из теста получения Spring Mvc - PullRequest
0 голосов
/ 30 мая 2019

Сейчас я работаю с Spring Rest Docs, чтобы сгенерировать документацию по моему API, и я не могу работать с поддельным ответом на мой запрос.Кажется, что эти ответы пустые.

Метод контроллера выглядит следующим образом:

@GetMapping()
    fun processBrowsePlayerRequest(transaction: Transaction, apiRequest: ApiRequest): Single<BrowsePlayerResponse?> {
        val applicationContext = RequestBasedApplicationContext(apiRequest)
        val standardContext = RequestBasedStandardContext(
                RequestBasedVersionContext(apiRequest),
                applicationContext,
                RequestBasedEditionContext(apiRequest, applicationContext),
                RequestBasedPlatformContext(apiRequest),
                transaction
        )
        val swidContext = RequestBasedSWIDContext(apiRequest)
        val uidContext = if (checkUIDPresent(apiRequest)) RequestBasedUIDContext(apiRequest) else null
        val seeAllContext = RequestBasedSeeAllContext(apiRequest)
        val requestBrowsePlayerContext = RequestBrowsePlayerContext(standardContext, swidContext, uidContext, seeAllContext, apiRequest)
        return browsePlayerService.getEntitiesBrowse(requestBrowsePlayerContext)
    }

В этот момент я могу видеть смоделированный ответ в соответствии с тем, что я вставил в свой тест:

enter image description here

Но в своих тестах я не уверен, как мне работать с этим ответом, и до сих пор я не знал, как извлечь эту информацию для работыс ним и сделайте некоторые проверки.

@Test
    @Throws(Exception::class)
    fun shouldReturnDefaultMessage() {
        val paramsMock = mapOf("swid" to "asudyasd-asdasd-asdasd", "seeAll" to true)
        `when`(apiRequest.parameters).thenReturn(paramsMock)
        `when`(browsePlayerServiceRepresentable.getEntitiesBrowse(anyObject())).thenReturn(Single.just(presentBrowsePlayers()))
        val result =this.mockMvc!!.perform(get("/v1/browse/players").flashAttr("apiRequest", apiRequest))
                .andExpect(status().isOk)
                .andDo(document("index", preprocessRequest(removeHeaders("Foo")),
                preprocessResponse(prettyPrint()))).andReturn()
        val reponse = result
    }

Когда я делаю отладку, я вижу смоделированный respose из моего класса контроллера:

Есть идеи?

...