gpt4 book ai didi

java - 在测试中使用 Spring 的 ResourceLoader

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:27:34 27 4
gpt4 key购买 nike

我是 @Autowire ing org.springframework.core.io.ResourceLoader进入我的一个@Service类。

在测试期间,我想访问 ResourceLoader 的一个实例,以便它可以注入(inject)到被测试的服务中。获得 ResourceLoader 的全功能实例的最佳方法是什么?在你的测试期间?

如果那不可能,是否有 ResourceLoader 的替代方案? ?本质上,我需要让我的服务从项目中读取一些静态文件。

更新:

开始使用 @RunWith(SpringJUnit4ClassRunner.class) + @ContextConfiguration在我的测试中;然而,ResourceLoader现在通过 @Autowire 注入(inject)进入我的服务的行为与平时不同(即当它不在测试上下文中时)。在测试中,ResourceLoader#getResource返回指向错误相对路径的资源,而不是在常规执行期间出现的正确绝对路径。

调试时发现的更多信息:

  • 在测试期间,@Autowired resourceLoaderorg.springframework.context.support.GenericApplicationContext 的实例
  • 在正常执行期间,resourceLoaderorg.springframework.web.context.support.XmlWebApplicationContext 的实例

最佳答案

您可以使用 DefaultResourceLoader .它处理应该足以进行简单测试的 URL 和类路径资源。

DefaultResourceLoader 不需要任何特殊设置。只需创建一个新实例并将其传递到您的测试中即可。

关于java - 在测试中使用 Spring 的 ResourceLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19927605/

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