在kotlin+中编写单元测试用例时,在每个{…}块中获取错误丢失调用;mock+;Junit5
我正在测试的功能在kotlin+中编写单元测试用例时,在每个{…}块中获取错误丢失调用;mock+;Junit5,kotlin,junit5,mockk,Kotlin,Junit5,Mockk,我正在测试的功能 class FileUtility { companion object { @JvmStatic fun deleteFile(filePath: String) { try { val file = getFileObject(filePath) file.delete() } catch (ex :Exception) {
class FileUtility {
companion object {
@JvmStatic
fun deleteFile(filePath: String) {
try {
val file = getFileObject(filePath)
file.delete()
} catch (ex :Exception) {
log.error("Exception while deleting the file", ex)
}
}
}
}
单元测试
@Test
fun deleteFileTest() {
val filePath = "filePath"
val file = mockk<File>()
every { getFileObject(filePath) } returns file
deleteFile(filePath)
verify { file.delete() }
}
这是错误还是我编写了错误的测试用例?假设
getFileObject
是FileUtility.kt
文件中的顶级函数,您需要使用mockkStatic(…)
模拟模块范围的函数,参数作为模块的类名
例如,pkg包中模块File.kt的“pkg.FileKt”
@测试
有趣的deleteFileTest(){
val file=mockk()
mockkStatic(“pkg.FileUtilityKt”)
val filePath=“filePath”
每个{getFileObject(filePath)}返回文件
每个{file.delete()}回答{true}
删除文件(文件路径)
验证{file.delete()}
}
您的getFileObject
函数驻留在哪里?
io.mockk.MockKException: Missing calls inside every { ... } block.
@Test
fun deleteFileTest() {
val file = mockk<File>()
mockkStatic("pkg.FileUtilityKt")
val filePath = "filePath"
every { getFileObject(filePath) } returns file
every {file.delete()} answers {true}
deleteFile(filePath)
verify { file.delete() }
}