Sil*_*rom 13 java junit unit-testing
我有一个类在磁盘上对文件进行操作.更确切地说,它遍历一个目录,读取具有给定后缀的所有文件,并对数据执行一些操作,然后将它们输出到新文件.
关于如何为这门课程设计单元测试,我有点怀疑.我想安装方法在/ tmp/somefolder中创建临时目录和临时文件,但我怀疑这是一个坏主意,原因有两个(开发人员使用Windows,文件权限等).
另一个想法是模拟我用来编写和读取磁盘的类,通过使用接口封装类然后提供模拟对象,但它似乎有点乱.
处理这样一个问题的标准方法是什么?
Ali*_*ael 11
如果使用JUnit 4.7及更高版本,则可以使用该@TemporaryFolder规则透明地获取临时文件夹,该文件夹应在每次测试后自动清除.
你的策略是正确的,IMO.请确保不要对临时目录进行硬编码.使用System.getProperty("java.io.tmpdir")得到的临时目录的路径,并使用终于在您的测试或阻塞@After,一旦测试完成清理方法所创建的文件和目录.
嘲笑一切都是可能的,但可能比它的价值更多的努力.您可以使用Java System.getProperty("java.io.tmpdir")提供的临时目录,无论您使用哪个系统,都应该能够写入该目录.坚持使用短文件名,即使在古老的东西上运行,你也会安全.