问题描述
我们可能知道,默认情况下,Kotlin 类一旦定义,它就是最终的,除非它被显式声明为 open
.
As we probably know, by default Kotlin class once defined, it is final, unless it is explicitly declared open
.
当我们想使用 Mockito 模拟它时,这将发布一个挑战.我们需要将其显式声明为 open
.有没有一种方法可以避免将其声明为 open
同时能够模拟它以进行测试?
This would post a challenge when we want to Mock it using Mockito. We need to explicitly declare it as open
. Is there a way we could avoid declaring it as open
while able to Mock it for our testing?
推荐答案
Mockito2 现在也可以模拟 final 类了.
Mockito2 can now mock final classes as well.
但是,此功能是选择加入,因此您需要手动启用它.
为此,您需要定义一个文件 /mockito-extensions/org.mockito.plugins.MockMaker
包含行 mock-maker-inline
However, this feature is opt-in, so you need to enable it manually.
To do so, you need to define a file /mockito-extensions/org.mockito.plugins.MockMaker
containing the line mock-maker-inline
参见例如
http://hadihariri.com/2016/10/04/Mocking-Kotlin-With-Mockito/ 或https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2#unmockable
快速介绍
See e.g.
http://hadihariri.com/2016/10/04/Mocking-Kotlin-With-Mockito/ or https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2#unmockable
for a quick introduction
附带说明,目前 不适用于 android
这篇关于是否可以在不打开课程的情况下将 Mockito 与 Kotlin 一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!