Сейчас я работаю с 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)
}
В этот момент я могу видеть смоделированный ответ в соответствии с тем, что я вставил в свой тест:
Но в своих тестах я не уверен, как мне работать с этим ответом, и до сих пор я не знал, как извлечь эту информацию для работыс ним и сделайте некоторые проверки.
@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 из моего класса контроллера:
Есть идеи?