我目前正在做一个 JUnit 测试,该测试检查负责从/向某个文件加载/保存进程配置的功能。鉴于资源中存在特定的配置文件,该功能会从文件中加载参数。否则,该功能会尝试创建新的配置文件并保留类中编码的默认配置。现在我正在使用 .class.getResource() 方法来检查配置文件是否存在,并检索必要的信息。这种方法被证明在 maven 的“test-class”和“class”目录中都可以正常工作。但是,当文件不存在时,我在尝试保存默认配置时遇到问题,即 .class.getResource() 方法返回 null,因为资源尚不存在。
有没有办法对我的功能进行编码以评估特定对象是作为测试执行还是在生产中执行?更准确地说,我如何构建资源文件的相对路径以指向生产资源(../classes/...)或测试资源(../test-classes/..),具体取决于执行模式目前是哪个项目?
我的问题有点类似于以下如何在 Maven 管理的 Java 项目中发现测试资源文件?但我认为这足以保证新线程的不同。