小编Lau*_*nce的帖子

如何使用mock.io模拟内部构造的实例?

我正在mockk和Junit5中为FileUtility类的伴随对象中定义的静态方法编写单元测试用例。

方法如下,

class FileUtility {

    companion object {
        fun getFileObject(fileName: String): File {
            require(!StringUtils.isBlank(fileName)) { "Expecting a valid filePath" }
            val file = File(fileName)
            if (file.isHidden)
                throw llegalArgumentException()
            return file
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

单元测试用例如下,

@Test
fun `get file object test throws exception when file path is hidden`() {
    val filePath = "filepath"
    val file = mockk<File>()
    every { file.isHidden } returns true
    assertThrows(IllegalArgumentException::class.java) {
        getFileObject(filePath)
    }
    verify { file.isHidden}
}
Run Code Online (Sandbox Code Playgroud)

出现以下错误,

Expected java.lang.Exception to be thrown, but nothing was thrown. …
Run Code Online (Sandbox Code Playgroud)

unit-testing kotlin junit5 mockk mockito-kotlin

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

junit5 ×1

kotlin ×1

mockito-kotlin ×1

mockk ×1

unit-testing ×1