在IntelliJ中为给定类生成测试类时,说class Foo
,它将生成一个测试类internal class FooTest
。为什么默认使用internal class
?对测试类使用内部类有什么好处?
我生成测试类的方式是:将光标放在类名Foo
上,按Option/Alt
+ Enter
,然后选择“创建测试”。
答案 0 :(得分:1)
使用internal
可见性意味着同一模块中的其他类可以访问它。这是Kotlin与Java默认的“ package-private”最接近的一种,这对于用Java编写的测试也很有意义。
使用private
更具限制性,因此测试类可以相互重用,这在某些时候可能有用。除非公共测试类是全局测试助手,否则它们真的不应该使用。这是例外,而不是规则。
答案 1 :(得分:0)
内部是Kotlin中提供的新修饰符,而Java中没有。 将声明设置为内部意味着它只能在同一模块中使用。 在Kotlin中,模块是指一组一起编译的文件。
internal class A {
}
internal val x = 0
这些在当前模块之外不可见。 当您需要向用户隐藏特定的库实现时,“内部修饰符”很有用。 使用Java中的程序包专用可见性是不可能的。