测试 Maven 模块中的 FileNotFoundException
我正在开发一个最近已完成的遗留项目,具有以下多模块结构:
父级:
- Web
- Service
- Dao
(“Service”模块依赖于“Dao”模块)
问题:服务类的一些测试调用使用 Spring 的 ClassPathXmlApplicationContext 创建 bean 的 DAO 代码(这部分不是真正的 DAO,而是与缓存相关)。由于 ClassPathXmlApplicationContext 使用 DAO 模块的 spring 配置 xml - 服务测试失败并抛出 FileNotFoundException。我认为这是因为测试在 Service 模块中运行,而引用的 spring config xml 位于 Dao 模块中。
请告知如何在参考其他模块的代码/资源的测试中解决上述问题?
I'm working on a recently mavenized legacy project with following multi-modular structure:
Parent:
- Web
- Service
- Dao
("Service" module is dependent on "Dao" module)
Problem: some tests of Service classes call DAO code that creates beans using Spring's ClassPathXmlApplicationContext (this part is not really DAOs but caching related). Since, ClassPathXmlApplicationContext uses spring config xml of the DAO module - the Service tests fail throwing FileNotFoundException. I think this is because tests run in Service module and the spring config xml being referred lies in Dao module.
Please advise on how can I resolve the above issue in tests referring to code/resources of other modules?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将 Spring 配置的副本放在 Service 模块中的 src/test/resources 下。通常,您无论如何都需要不同的配置来进行测试,但这也意味着您的测试较少依赖于另一个模块中的配置更改。
Put a copy of the Spring configuration under src/test/resources in the Service module. Quite often you want a different configuration for testing anyway, but also it means your tests are less dependent on configuration changes in another module.