我想测试B类:
class B : A {
override fun init() {
// do work here
}
}
class A {
protected fun init() { } // will be called by internal logic
}
在Java中,我们可以在测试方法(测试类与被测试对象在同一个包中)中调用b.init()
而不会出现问题,但是在Kotlin中,编译器会抱怨:
无法访问'init': 它在 'B' 中是受保护的
@Test
fun `checks init`() {
val b = B()
b.init()
// assert work done
}
为什么它不起作用?有什么解决方法吗(我想避免将方法设置为公共方法)?
internal
不可能,使用public
也不太可接受 - 特别是因为我可以在 Java 中这样做。 - Kamil Seweryn