繁体   English   中英

Kotlin Mockito始终返回作为参数传递的对象

[英]Kotlin Mockito always return object passed as an argument

我试图以这种方式在我的模拟对象上使用Mockito,使其应始终返回作为参数传入的同一对象。 我尝试这样做,如下所示:

private val dal = mockk<UserDal> {
    Mockito.`when`(insert(any())).thenAnswer { doAnswer { i -> i.arguments[0] } }
}

但是,此行总是失败并显示:

io.mockk.MockKException: no answer found for: UserDal(#1).insert(null)

insert(user: User)方法不接受null作为参数(显然User不是可为null的类型)。

如何使insert()方法始终返回作为参数接收的同一对象?

使用MockK时 ,不应使用Mockito

仅使用MockK,您可以通过以下方法实现相同的目的:

val dal = mockk<UserDal> {
    every { insert(any()) } returnsArgument 0
}

如果您打算使用Mockito ,则应删除MockK并使用mockito-kotlin

val dal = mock<UserDal> {
    on { insert(any()) } doAnswer { it.arguments[0] }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM