我想编写一个单元测试功能,与文件系统交互(写入文件)。 我已经适应了创建临时文件夹的解决方案,使用: @Rule 注释和 TemporaryFolder 类。单元测试后将删除此文件。但是这个解决方案有两个缺点:
有没有办法编写单元测试来测试与文件系统交互的功能,而不使用像Mockito这样的模拟框架?
答案 0 :(得分:1)
当然,访问文件系统是不符合纯单元测试的想法;但是:写入一些本地文件仍然比网络/数据库通信快得多。
当您在失败后将这些目录留在原地时,您也可以直接访问所有已创建的输出;这可能有助于调试目的。
最后:然后你总是可以在其他层上触发临时目录的“擦除” - 从而最大限度地减少“剩饭”的可能性。
长话短说:在这里务实。
如果在写入本地文件系统时测试仍然简单且有用;然后保持这种方式。不要改变你的工作方法,只是盲目地遵循其他人制定的规则。
另一方面,如果你(和你的团队成员!)对当前的解决方案感到不舒服;然后确定您的选项空间并决定是否要更改设置中的内容。