java - 文件读取和可测试代码

标签 java unit-testing

我有一段 java 代码,它从文件中读取字符串并根据字符串创建映射。由于此代码依赖于文件,因此单元测试很笨拙。如何设计这样的片段才能对代码进行单元测试?

我能想到的一种方法是,这篇文章不是将文件作为参数,而是可以将输入流作为参数。在实际场景中,传递文件输入流,而单元测试传递从字符串创建的输入流。但是,这对我来说看起来像是杀戮。有没有更好的办法?

最佳答案

如果您对文件所做的一切都是读取文件,那么不提供从 InputStream 读取的函数就是设计错误。因此,修改函数以采用 InputStream,并提供采用 File 的包装器。使用 ByteArrayInputStream或 StringInputStream 来测试它没问题。

关于java - 文件读取和可测试代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1011061/

相关文章:

java - java.util 类和方法中嵌套的可读性

C#转安卓聊天客户端

java - JNLP文件: not to create desktop shortcut

unit-testing - 升级到 Grails 3.0.6 后使用动态查找器时使用 HibernateTestMixin 进行单元测试时出现 MissingMethodException

c# - 使用 FakeItEasy 在方法中模拟方法

python - 在站点包中安装我的 Python 单元测试是否有意义?

java - 切换大小写或不同的 URL?我应该在 Springboot Controller 中使用什么来调用不同的服务

java - Selenium Java WebDriverWait - 无法访问 java.util.function

php - 下载文件的单元测试

unit-testing - 当组件是无状态功能时,使用 Enzyme 按显示名称查找组件