我正在实现一个单元测试,该单元测试应该从特定路径读取文件并执行一些操作。
在实际情况下,我的文件将存在于OS的特定路径中-类似于/users/placplac/file.txt
。
如何在单元测试中实现模拟(或从资源中读取文件)?
这是我要模拟的代码:
class ReportServiceImpl(val filePath: String) {
private fun getContent() {
val reader = Mybject(File(filePath).bufferedReader()) // this is what I want to mock
....
}
}
可以仅模拟File(filePath).bufferedReader()
部分吗?
最佳答案
只要未对路径进行硬编码并将其作为参数传递,您就可以使用带有测试资源的路径(在src/test/resources
中)调用此函数:
val resource = this::class.java.classLoader.getResource("test.txt")
val file = Paths.get(resource.toURI()).toFile()
val absolutePath = file.getAbsolutePath()
val subject = ReportServiceImpl(absolutePath)
... do your tests
关于java - 如何模拟特定的阅读文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62514791/