【发布时间】:2017-04-09 11:40:52
【问题描述】:
我有一个Android Clean Architecture project 用 Kotlin 编写,包含 3 个模块:
- 数据(Android 库)
- 域(Java 库)
- 演示文稿(Android 应用程序)
这 3 个模块每个都有用 junit 编写的单元测试。但是对于 Kotlin,默认情况下每个类都是 final 的。我很快就遇到了问题:如何使用 mockito 模拟 final 类
现在可以使用Mockito 2
可以通过 mockito 扩展机制通过创建包含单行的文件 /mockito-extensions/org.mockito.plugins.MockMaker 来完成:
mock-maker-inline
此解决方案在数据模块(Android 库)和 演示模块(Android 应用程序)但不适用于我的 域模块(Java 库).
我知道已经有人问过这个问题(How to mock a final class with mockito、Mock objects calling final classes static methods with Mockito),但我没有找到我想要的答案。
【问题讨论】:
-
你的意思是它在那个模块中不起作用?你已经创建了
mock-maker-inline的文件,但它仍然给你关于模拟最终类的错误? -
@zsmb13 是的,我有以下错误:“Mockito 无法模拟/间谍因为:final class”
标签: java android junit mockito kotlin