Ala*_*anH 1 java junit class inner-classes kotlin
我是 Kotlin 的新手,对 Java 的经验也很少,所以请耐心等待。根据我已经能够研究的内容(例如,此处),似乎应该mockFoo可以从外部类访问,但 IntelliJ 给了我一个Unresolved Reference错误。
@ExtendWith(MockKExtension::class)
class GetBazTest {
@MockK
private lateinit var mockFoo: FooClient
@MockK
private lateinit var mockBar: BarClient
private lateinit var getBaz: GetBaz
@BeforeEach
fun setup() {
getBaz = GetBaz(
mockFoo,
mockBar,
)
}
@Test
fun `it should do a thing`() {
// some code to create expectedResult
coEvery {
mockFoo.getSomething(any())
} answers {
expectedResult
}
}
@Nested
@DisplayName("Tests for Xyz")
class XyzTest {
@Test
fun `it should do a different thing`() {
// some code to create expectedResult
coEvery {
mockFoo.getAThing(any()) // mockFoo gives Unresolved Reference error
} answers {
expectedResult
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要setUp mockFoo在内部类中再次这样做似乎是不对的。如何访问外部变量?
只需将 XyzTest 设为一个inner类即可授予他访问外部类成员的权限
@Nested
@DisplayName("Tests for Xyz")
inner class XyzTest { ...
Run Code Online (Sandbox Code Playgroud)