gpt4 book ai didi

java - Java 7 中集成测试文件系统相关代码

转载 作者:行者123 更新时间:2023-12-01 04:48:04 24 4
gpt4 key购买 nike

我遇到了一种情况,我正在修改 Java 5 应用程序,并且我想添加额外的测试(与集成测试相邻的单元测试)以确保一切正常工作。我需要应用程序与操作系统提供的实际文件系统完全解耦,并且之后我想检查文件访问模式和新文件内容。我可以在完全受控的环境中在 Java 7 或任何其他版本中运行单元测试,我只需要最终应用程序与 Java 5 兼容,即我需要像 new File(...) 这样的代码成为正在使用的东西。

是否可以在不诉诸黑魔法(字节码操作模拟框架等)的情况下完成此操作,例如通过重新配置 Java 7 或在幕后添加合适的提供程序?

最佳答案

当然,您可以使用 -Xbootclasspath 选项模拟您的 File 类。但是你必须考虑许可问题,恕我直言,它仍然不允许你进行所有必需的测试。

如果文件系统操作对您的应用程序很重要,您应该为文件系统访问创建专用的抽象层。它会以某种方式复制 java IO api,但允许您测试应用程序如何与 IO api 交互。

但是,如果您正在使用一些先进的技术或者您需要高可移植性,那么这对您来说还不够。正如 Joachim 所说,File 类非常依赖于操作系统和文件系统。它在 Linux、Windows 上的表现会有所不同,当你遇到符号链接(symbolic link)、ACL、大写名称等时,它的表现也会有所不同。如果你想测试这种行为,事实上,你必须测试基础设施而不是应用程序。因此,您应该考虑在许多不同环境(可能使用虚拟机)上进行集成测试,而不是单元测试

关于java - Java 7 中集成测试文件系统相关代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15477837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com