Документирование однократного ответа rxjava с весенними документами об отдыхе - PullRequest
0 голосов
/ 14 июня 2019

что я пытаюсь сделать, это документировать один ответ от rxjava, используя rx java, но я получаю следующую проблему:

 WARN  o.s.w.s.m.s.DefaultHandlerExceptionResolver - Resolved exception caused by handler execution: org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class rx.internal.util.ScalarSynchronousSingle.

Вот так выглядит мой контроллер:

package com.espn.csemobile.espnapp.controllers

import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
import rx.Single

@RestController
class HomeController {

    @GetMapping("/")
    fun greeting(): Single<MutableList<Message>> {
        var itemsList: MutableList<Message> = mutableListOf(Message("Hello world"), Message("Hello world2"))
        return Single.just(itemsList)
    }
}
data class Message(val message:String)

Это мой тест:

package com.espn.csemobile.espnapp.controllers

import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.autoconfigure.restdocs.AutoConfigureRestDocs
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document
import org.springframework.restdocs.operation.preprocess.Preprocessors
import org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath
import org.springframework.restdocs.payload.PayloadDocumentation.responseFields
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner
import org.springframework.test.web.servlet.MockMvc
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
import org.springframework.test.web.servlet.result.MockMvcResultHandlers.print
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status

@RunWith(SpringJUnit4ClassRunner::class)
@AutoConfigureRestDocs(outputDir = "target/generated-snippets")
@WebMvcTest(controllers = [HomeController::class], secure = false)
class WebLayerTestOne {

    @Autowired
    private val mockMvc: MockMvc? = null

    @Test
    @Throws(Exception::class)
    fun shouldReturnDefaultMessage() {
        this.mockMvc!!.perform(get("/")).andDo(print()).andExpect(status().isOk)
                .andDo(document("{ClassName}/{methodName}",
                Preprocessors.preprocessRequest(Preprocessors.prettyPrint()),
                Preprocessors.preprocessResponse(Preprocessors.prettyPrint()),
                responseFields(
                        fieldWithPath("[].message").description("Response Message")
                )))
    }
}

Я не совсем уверен, есть ли способ документировать отдельные ответы rxjava с использованием rxjava, или какое приложение я могу использовать.

Примечание: без единой оболочки тест работает должным образом, проблема в ответе Single <>.

...