项目中一个 common 模块是非 SpringBoot 的 , 一个业务模块是 SpringBoot 的 Common 模块的一个工具类,需要注入到业务模块中 为啥总是注入不了,显示为 null 啊? 求帮助
1
wangsongyan 2022-09-08 22:36:15 +08:00 via iPhone
打断点确定下工具类有没有实例化
|
2
gzk329 OP 单元测试中 @InjectMocks 了 业务模块中的一个类 bean1 ,common 模块中的工具类是注入到这个 bean1 的,然后在测试类中,对注入来的对象也使用了 @MockBean ,debug 的时候就是一直显示为 null ,并没有注入
|
3
commoccoom 2022-09-08 22:42:02 +08:00 via iPad
第三方库类可能无法使用自动注解,需要手动配置 JavaConfig 注入
|
4
gzk329 OP @commoccoom 手动注入 会显示 bean 冲突异常 Unable to register mock bean xxx expected a single matching bean to replace but found [xxxx getxxxx]
|
5
gzk329 OP 而且这个工具类也是我自己写的 common 模块单元测试也写了 都正常的
|
6
commoccoom 2022-09-08 22:59:27 +08:00 via iPad
|
7
gzk329 OP @commoccoom 谢谢你的回复 我好像明白了 和 spring 没关系 是我的 Mock 没用好
|
8
mazai 2022-09-09 11:43:28 +08:00
|
9
gzk329 OP 这个我也解决了 是和我另一个帖子是同一个问题 MOCK 单元测试的时候 多层怎么既保留部分依赖的真实方法 有 mock 模拟一部分 我是 @Resource 和 @InjectMock 一起使用 既注入了测试对象 又能 mock 模拟一部分数据
|