Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用主类路径资源而不是随意测试一个_Java_Spring_Unit Testing - Fatal编程技术网

Java 使用主类路径资源而不是随意测试一个

Java 使用主类路径资源而不是随意测试一个,java,spring,unit-testing,Java,Spring,Unit Testing,我有一些代码期望包中的特定资源作为特定操作的输入。此资源存储在src/main/resources中。 对于测试,我在src/test/resources中有一个更轻的文件测试版本。这样,我就可以在测试时欺骗使用该版本的代码 问题是我还包括了一个集成测试,我希望使用生产资源而不是测试资源,但是当测试在测试阶段执行时,它会读取测试版本 我如何辨别,使我的集成测试忘记了/src/test/resources/foobar.txt,而使用/src/test/main/foobar.txt 附言:我知道

我有一些代码期望包中的特定资源作为特定操作的输入。此资源存储在
src/main/resources
中。 对于测试,我在
src/test/resources
中有一个更轻的文件测试版本。这样,我就可以在测试时欺骗使用该版本的代码

问题是我还包括了一个集成测试,我希望使用生产资源而不是测试资源,但是当测试在测试阶段执行时,它会读取测试版本

我如何辨别,使我的集成测试忘记了
/src/test/resources/foobar.txt
,而使用
/src/test/main/foobar.txt


附言:我知道我可以使用mockito的Whitebox.setInternalState(),但我想知道是否有一种更优雅、更解耦的方法

听上去,我猜你在什么地方硬编码了“foobar.txt”。你能不能给它们不同的名称,并将路径作为参数添加到需要它们的类中,以便显式指定要使用的文件?问题是,该文件是jar中的一个资源文件,对我来说,向应用程序的操作员公开该属性没有多大意义。已经有很多属性了,更不用说它们是否是内部实现细节了。我指的不是属性。我的意思是,如果你把它硬编码在类A中,那么你也许可以把路径作为参数传入。然后调用类可以传入test_foobar.txt或prod_foobar.txt。