java - 在多模块 Spring 应用程序中测试服务层
问题描述
我有一个由几个模块组成的项目。(web,jms,service,persistence) 当我编写持久性模块的测试时,它工作得很好,因为我使用了下面的代码片段。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = PersistenceConfig.class)
public class SomeTestClass{
@Autowired
SomeRepository someRepository;
在这里你可以看到我正在使用 PersistenceConfig 配置类,它工作得很好。当涉及到测试在 JMS 模块中具有依赖关系的服务层时,我正在通过属性文件配置 jms 属性。问题是 @PropertyResource 没有被注入到测试类中,我需要读取该文件来配置 JMSConfig 类。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = {PersistenceConfig.class, JmsConfig.class, CachingConfig.class})
@TestPropertySource("classpath:asynch_test.properties")
public class SomeServiceTest {
@Autowired
@Qualifier("somePersistenceService")
SomeService someService;
任何评论表示赞赏。
解决方案
推荐阅读
- python - 在启动树莓派时运行 python 脚本的问题
- sql - SQL:当组中有重复数据时只选择第一行
- c# - 使用 C# 和 Selenium 的 Crawlera/Zyte 代理身份验证
- docker - 使用 docker 安装 google-chrome-stable
- postgresql - pgadmin 4,导入 csv,错误代码 1,没有错误信息
- python-3.x - 将 Python 列表中字符串中第 N 个字符之前和之后的字符大写
- c - 函数“rand_r”的隐式声明
- javascript - Discord.js 石头剪刀布命令不做任何事情,即使没有明显的错误
- rest - 使用 Twilio 发送 SMS 时出现 TwilioRestException
- c - 获得用户输入后,最后一个 printf() 根本不打印