我想释放当前实例,但不在这里工作有没有更简单的方法来处理它。
我有一个类 -> DownloadManager,它是单例的
我有一个 @Before 测试,它总是执行单元测试用例,我最初是这个 DownloadManager,请找到下面的类示例。
@Before
fun setup() {
sut = spyk(DownloadManager()
}
@Test
fun `Given DownloadInitialiser Init`() {
// Given
val randomID = "ID+${System.nanoTime()}"
mockkObject(BuildInfo)
every { BuildInfo.model() } returns "Nokia"
val koinInitialiser = mockk<KoinInitialiser<String>>(relaxed = true)
every { createKoin<String>() } returns koinInitialiser
every {
koinInitialiser.start(
context,
contentResolverService
)
} returns
koinApplication { modules(modules) }.koin
// When
runBlocking {
sut.init(context, downloadConfigProvider)
}
// Then
verify {
koinInitialiser.start(
context,
downloadConfigProvider
)
}
unmockkObject(BuildInfo)
您应该使用tearDown()方法释放实例,
@After
fun tearDown() {
sut.close()
}
它将确保downloadManager实例在测试方法之后正确关闭,从而避免潜在的资源泄漏。