Kotlin:为单元测试提供内部函数

时间:2016-02-28 14:52:28

标签: unit-testing kotlin package-private

如果测试所在的模块与生产代码不同(这是常见的),那么使内部函数对测试可见的最佳方法是什么?

在Java中,我将生产代码和测试放在同一个包中,并使待测试的方法包私有(另外,如果获得它的唯一原因,请添加@VisibleForTest注释package-private而不是private是测试)。不幸的是,Kotlin没有包私有的概念。

2 个答案:

答案 0 :(得分:17)

使用internal访问修饰符标记的类和方法将在当前版本的Kotlin,Gradle和Intellij中使用,以便从测试类访问这些方法。这些工具将主要和测试源路径视为同一模块的一部分。

你有没有试过这个?如果它失败了,你应该报告一个错误,因为这已经被报告,修复了,在任何当前版本都应该没问题。

答案 1 :(得分:6)

最简单的解决方案可能是根据生产сode在同一模块中的内部代码进行单元测试,并在单独的模块中仅保留使用公共API的集成测试。

这似乎是合理的,因为internal modifier意味着同一模块内的可见性。