From 2389d082f45c9c1bd56d729ed2e7d5a8d21b9318 Mon Sep 17 00:00:00 2001 From: LamGC Date: Wed, 4 May 2022 22:36:35 +0800 Subject: [PATCH] =?UTF-8?q?test(config):=20=E4=BC=98=E5=8C=96=E5=AF=B9=20d?= =?UTF-8?q?efaultInitializer=20=E6=96=B9=E6=B3=95=E7=9A=84=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 defaultInitializer 方法的反射获取次数减少为一次, 并在测试结束后恢复访问权设置. --- scalabot-app/src/test/kotlin/AppConfigTest.kt | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/scalabot-app/src/test/kotlin/AppConfigTest.kt b/scalabot-app/src/test/kotlin/AppConfigTest.kt index ea4c549..503bcbf 100644 --- a/scalabot-app/src/test/kotlin/AppConfigTest.kt +++ b/scalabot-app/src/test/kotlin/AppConfigTest.kt @@ -64,16 +64,17 @@ internal class AppPathsTest { @Test fun `default initializer`(@TempDir testDir: File) { + val defaultInitializerMethod = Class.forName("net.lamgc.scalabot.AppConfigsKt") + .getDeclaredMethod("defaultInitializer", AppPaths::class.java) + .apply { isAccessible = true } + val dirPath = "${testDir.canonicalPath}/directory/" val dirFile = File(dirPath) mockk { every { file }.returns(File(dirPath)) every { path }.returns(dirPath) every { initial() }.answers { - Class.forName("net.lamgc.scalabot.AppConfigsKt") - .getDeclaredMethod("defaultInitializer", AppPaths::class.java) - .apply { isAccessible = true } - .invoke(null, this@mockk) + defaultInitializerMethod.invoke(null, this@mockk) } }.initial() assertTrue(dirFile.exists() && dirFile.isDirectory, "默认初始器未正常初始化【文件夹】.") @@ -83,10 +84,7 @@ internal class AppPathsTest { every { file }.returns(this@apply) every { path }.returns(this@apply.canonicalPath) every { initial() }.answers { - Class.forName("net.lamgc.scalabot.AppConfigsKt") - .getDeclaredMethod("defaultInitializer", AppPaths::class.java) - .apply { isAccessible = true } - .invoke(null, this@mockk) + defaultInitializerMethod.invoke(null, this@mockk) } }.initial() assertTrue(this@apply.exists() && this@apply.isFile, "默认初始器未正常初始化【文件】.") @@ -109,16 +107,15 @@ internal class AppPathsTest { every { file }.returns(this@apply) every { path }.returns(this@apply.canonicalPath) every { initial() }.answers { - Class.forName("net.lamgc.scalabot.AppConfigsKt") - .getDeclaredMethod("defaultInitializer", AppPaths::class.java) - .apply { isAccessible = true } - .invoke(null, this@mockk) + defaultInitializerMethod.invoke(null, this@mockk) } }.initial() verify(exactly = 0) { createNewFile() } verify(exactly = 0) { mkdir() } verify(exactly = 0) { mkdirs() } } + + defaultInitializerMethod.isAccessible = false } }