Я работаю с spring mvc для тестирования контроллера пружины, и я хочу задокументировать этот тест с документами по отдыха пружин. Вот как мой тест:
@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 = mockMvc.perform(MockMvcRequestBuilders.get("/v1/browse/players").flashAttr("apiRequest", apiRequest))
result.andExpect(MockMvcResultMatchers.status().isOk())
// ViewResultMatchers view = MockMvcResultMatchers.view();
result.andExpect(view().name("v1/browse/players"))
result.andExpect(model().hasNoErrors<ResultMatcher>())
val modelMap = result.andReturn().getModelAndView().getModelMap()
val objecto = modelMap["single"]
val attribites = (modelMap["single"] as Single<*>).toBlocking().value()
val header = (attribites as BrowsePlayerResponse).header
//<<--- Since here I am translating this to spring rest docs ->>>>
// val paramsMock = mapOf("swid" to "asudyasd-asdasd-asdasd", "seeAll" to true)
`when`(apiRequest.parameters).thenReturn(paramsMock)
`when`(browsePlayerServiceRepresentable.getEntitiesBrowse(anyObject())).thenReturn(Single.just(presentBrowsePlayers()))
this.mockMvc!!.perform(get("/v1/browse/players").flashAttr("apiRequest", apiRequest)
.param("uid", "s:20~l:23")
.param("swid", "jsdkjskdjk")
.param("seeAll", "true")
.param("region", "us")
.accept(MediaType.APPLICATION_JSON)
//.contentType(MediaType.APPLICATION_JSON).content(json(presentBrowsePlayers()))
)
.andExpect(status().isOk)
.andDo(document("home",
preprocessResponse(prettyPrint()), requestParameters(
parameterWithName("region")
.description("Country."),
parameterWithName("seeAll")
.description("See all elements"),
parameterWithName("uid")
.description("Team UID"),
parameterWithName("swid")
.description("Swuid Number indentifier")
)
)).andExpect(view().name("v1/browse/players"))
.andExpect(model().size<Int>(3))
}
Я пытаюсь сделать то же самое, что я сделал с Spring mvc для документирования документов Spring Rest, моя проблема с ответом, потому что я не могу использовать responseFields, потому что мой контент пуст, и я получаю и выдаю что-то вроде документ пуст Ну, информация находится в объекте modelAndView. Я получаю один ответ с массивом объектов. Я могу получить доступ к этой информации через этот код.
val modelMap = result.andReturn().getModelAndView().getModelMap()
val objecto = modelMap["single"]
val attribites = (modelMap["single"] as Single<*>).toBlocking().value()
val header = (attribites as BrowsePlayerResponse).header
И я не знаю, как мне документировать этот заголовок ответа, например, с документами Spring Rest. Я довольно новичок в этой технологии, есть какие-нибудь идеи о подлогах?