我刚开始为很多代码编写测试.有一堆类依赖于文件系统,即读取CSV文件,读/写配置文件等等.
目前,测试文件存储在项目的测试目录中(它是Maven2项目),但由于多种原因,该目录并不总是存在,因此测试失败.
您是否了解在单元/集成测试中应对文件系统依赖性的最佳实践?
编辑:我不是在寻找上面描述的特定问题的答案.那只是一个例子.我更喜欢一般建议如何处理文件系统/数据库等的依赖项.
第一个应该尝试使单元测试远离文件系统 - 请参阅此单元测试规则集.如果可能,您的代码使用Streams,它们将是单元测试的缓冲区(即内存中)和生产代码中的FileStream.
如果这不可行,您可以让您的单元测试生成他们需要的文件.这使得测试易于阅读,因为所有内容都在一个文件中.这也可能会阻止权限问题.
您可以在单元测试中模拟文件系统/数据库/网络访问.
您可以将依赖于DB或文件系统的单元测试视为集成测试.