我想测试一下弹簧
@Configuration class
可以处理类路径上丢失的文件。例如,当使用 PropertySourcesPlaceholderConfigurer 时。但这只是一个具体的例子,问题实际上是关于如何测试与类路径交互的类(例如,在 maven 项目中读取位于 src/main/resources 中的文件)。
所以本质上我想创建一个弹簧上下文,我在测试设置代码中控制类路径。
测试需要是 JUnit 测试。
希望下面的内容可以帮到你
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:/testApplicationContext.xml"})
public class YourTestClass{
您必须为您的测试创建一个弹簧上下文,并且可以将生产环境包含在其中。您可以classpath*:
用绝对位置替换。
问候,拉吉布。
如果它是一个 Maven 项目,这项工作:
将要测试缺失的类路径文件移动到单独的 pom jar 模块,并在需要的地方包含它。
将类路径测试移动到名为 missing-classpath-file-test 的单独 pom jar 模块中,但不要将该模块包含在要模拟为缺失的文件中。我只会因为该测试而从类路径中丢失。
运行missing-classpath-file-test时,文件不会在classpath上,实现你需要重现的错误。
关于下面评论中的问题,对于应用程序服务器附带的类加载器和在 junit 测试中使用的类加载器,不可能以编程方式更改类路径。