java - 通过注释类创建带有限定符的@MockBean?
问题描述
在我的 Spring Boot 测试中,我使用了 2 个具有不同限定符的模拟 bean:
@RunWith(SpringRunner.class)
@SpringBootTest
class HohoTest {
@MockBean @Qualifier("haha") IHaha ahaha;
@MockBean @Qualifier("hoho") IHaha ohoho;
}
由于我没有明确使用这些 bean,我宁愿将它们从类主体中移开,因为@MockBean
注释现在是可重复的:
@RunWith(SpringRunner.class)
@SpringBootTest
@MockBean(IHaha.class)
@MockBean(IHaha.class)
class HohoTest {}
但是,我还需要传入一个限定符,因为它们具有相同的类型。关于如何实现这一目标的任何想法?
解决方案
因为使用注解@Qualifier
意味着按名称选择 bean,所以您可以使用如下代码为 mock 设置名称:
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = {JsonMapperConfig.class})
public class IntegrationFlowTest {
@MockBean(name = "s3MessageRepository")
private S3Repository s3MessageRepository;
// etc
推荐阅读
- javascript - 当有人点击浏览器的后退按钮做出反应时,我想重定向到一个组件?
- sql - 父子SQL查询
- google-sheets-formula - 添加列后自动更新公式
- javascript - 如何在热图图层中设置消散
- mysql - 在 MySQL ib_buffer_pool 和 ibtmp1 迁移系统表空间时也移动了 ibdata 文件
- node.js - multer 和 router.post() 的问题。无法读取属性“任何”
- python - 标签被切断
- sql - postgres 将表的行列为列
- json - 如何将 Django 或 DRF 创建的 HTML 表单交付给 React?
- angularjs - 我想删除控制台@Angular中的错误“GET http://localhost:4200/assets/i18n/1/fr.json 404(未找到)”