0

我想测试一下弹簧

@Configuration class

可以处理类路径上丢失的文件。例如,当使用 PropertySourcesPlaceholderConfigurer 时。但这只是一个具体的例子,问题实际上是关于如何测试与类路径交互的类(例如,在 maven 项目中读取位于 src/main/resources 中的文件)。

所以本质上我想创建一个弹簧上下文,我在测试设置代码中控制类路径。

测试需要是 JUnit 测试。

4

2 回答 2

1

希望下面的内容可以帮到你

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:/testApplicationContext.xml"})
public class YourTestClass{

您必须为您的测试创建一个弹簧上下文,并且可以将生产环境包含在其中。您可以classpath*:用绝对位置替换。

问候,拉吉布。

于 2013-10-14T08:14:48.927 回答
0

如果它是一个 Maven 项目,这项工作:

  • 将要测试缺失的类路径文件移动到单独的 pom jar 模块,并在需要的地方包含它。

  • 将类路径测试移动到名为 missing-classpath-file-test 的单独 pom jar 模块中,但不要将该模块包含在要模拟为缺失的文件中。我只会因为该测试而从类路径中丢失。

运行missing-classpath-file-test时,文件不会在classpath上,实现你需要重现的错误。

关于下面评论中的问题,对于应用程序服务器附带的类加载器和在 junit 测试中使用的类加载器,不可能以编程方式更改类路径。

于 2013-10-19T22:27:31.647 回答