【发布时间】:2023-03-11 11:55:01
【问题描述】:
我整理了一个基于 Maven 的项目,该项目使用 Junit 4 Runner 中的 Spek 进行测试。
我在 Codacy 中配置了项目,并得到了一个有用的建议来记录我的公共课程或降低它们的可见性(太棒了)。
我发现 Kotlin 编译器似乎将测试视为存在于不同的模块中,鉴于我的项目布局,这使得进行有效的单元测试变得非常困难。如果类或接口的可见性降低到内部,则测试将无法编译。
请提出解决此问题的机制。在这种情况下是否不能使用内部可见性修饰符?是否有可以克服该问题的有用的编译器配置或 Spek 配置?我认为这个建议确实是正确的;我不希望记录这些类,因为它们是内部的并且将来可能会更改,或者文档根本不值得努力。
【问题讨论】:
-
你使用的是什么 Kotlin 版本?
-
我听说有一个 openall kotlin 插件可以“打开”封闭类以进行测试:kotlinlang.org/docs/reference/compiler-plugins.html
-
如果你用谷歌搜索类似 kotlin mock 的东西,有一些解决方案
-
我使用的是 Kotlin 1.1.51。