Kotlin测试班应该是内部的吗?

时间:2019-12-31 02:50:43

标签: testing kotlin

在IntelliJ中为给定类生成测试类时,说class Foo,它将生成一个测试类internal class FooTest。为什么默认使用internal class?对测试类使用内部类有什么好处?

我生成测试类的方式是:将光标放在类名Foo上,按Option/Alt + Enter,然后选择“创建测试”。

2 个答案:

答案 0 :(得分:1)

使用internal可见性意味着同一模块中的其他类可以访问它。这是Kotlin与Java默认的“ package-private”最接近的一种,这对于用Java编写的测试也很有意义。

使用private更具限制性,因此测试类可以相互重用,这在某些时候可能有用。除非公共测试类是全局测试助手,否则它们真的不应该使用。这是例外,而不是规则。

答案 1 :(得分:0)

内部是Kotlin中提供的新修饰符,而Java中没有。 将声明设置为内部意味着它只能在同一模块中使用。 在Kotlin中,模块是指一组一起编译的文件。

internal class A {
}

internal val x = 0

这些在当前模块之外不可见。 当您需要向用户隐藏特定的库实现时,“内部修饰符”很有用。 使用Java中的程序包专用可见性是不可能的。