Котлин Спринг WebMvcTest Mockk - PullRequest
       8

Котлин Спринг WebMvcTest Mockk

0 голосов
/ 20 сентября 2019

Кто-нибудь сталкивался с проблемой, когда @MockkBean не работает или, по крайней мере, заглушки не проходят?

Простой пример:

@RunWith(SpringRunner::class)
@WebMvcTest(controllers = [WidgetController::class])
class WidgetTest {

    @Autowired
    private lateinit var mockMvc: MockMvc
    @MockkBean
    private lateinit var widgetService: WidgetService

    @Test
    fun test() {
        val value = objectMapper.readValue<MyWidget>(something()))
        every {
            widgetService.getWidget(ArgumentMatchers.anyString())
        } returns value


        mockMvc
                .perform(
                        get(
                                "/apis/widget/v1/widget"
                        ).contentType(MediaType.APPLICATION_JSON)
                )
                .andExpect {
                    JSONAssert.assertEquals(
                           widgetPayload(),
                            it.response.contentAsString,
                            false
                    )
                }
    }
}

приводит к:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is io.mockk.MockKException: no answer found for: WidgetService(com.bondhouse.pms.services.externalportfolios.ExternalPortfoliosService#0 bean#1).getWidget(test)

1 Ответ

0 голосов
/ 20 сентября 2019

Всегда выясняйте ответ через 3 минуты после публикации ...

Убедитесь, что вы не импортируете сопоставление аргументов Mockito с помощью ArgumentMatcher.any()

...