io.mockk.MockKException:使用mockk通过ObjectMapper.readValue()模拟对象列表时没有找到答案?

Nar*_*pai 5 mocking kotlin objectmapper mockk

有类似的问题,但没有专门涉及 kotlin、mockk 和使用 objectMapper.readValue 读取对象列表。

给定一个方法:

fun someMethod(message: Message): List<Animal> = objectMapper.readValue(
        String(message.body),
        object : TypeReference<List<Animal>>() {}
)
Run Code Online (Sandbox Code Playgroud)

我试图在这里嘲笑它:

@Test
fun `test you filthy animals`() {
    ...
    val animals: List<Animal> = emptyList()
    every { objectMapper.readValue<List<Animal>>(
       any<String>(), 
       any<Class<List<Animal>>>()
    ) } returns animals
    ...
}
Run Code Online (Sandbox Code Playgroud)

但这没有用。我收到以下错误:

io.mockk.MockKException: no answer found for: ObjectMapper(#72).readValue(
     somebody,  
     be.kind.to.Nature$someMethod$animals$1@46b2a11a
)
Run Code Online (Sandbox Code Playgroud)

半停。

Nar*_*pai 4

我花了很长时间才解决这个问题,但在这里分享它是为了繁荣!

@Test
fun `test you filthy animals`() {
    ...
    val animals: List<Animal> = emptyList()
    every { objectMapper.readValue<List<Animal>>(
       any<String>(), 
       any<TypeReference<List<Animal>>>()
    ) } returns animals
    ...
}
Run Code Online (Sandbox Code Playgroud)