JUnit 版本影响 Bean 找不到

JUnit 版本影响 Bean 找不到

在为实现类编写测试类时,在测试类中使用构造器注入 Bean 时,提示找不到 Bean,代码如下:

java 复制代码
@Service
public class WeChatServiceImpl implements IWeChatService {
  @Override
  public String getNumber(String detailCode) { return detailCode; }
}
java 复制代码
@SpringBootTest(classes = WeChatServiceImpl.class)
@RequiredArgsConstructor
class WeChatServiceImplTest {

  private final IWeChatService weChatService;

  @Test
  void getPhoneNumber() { System.out.println(weChatService.getNumber("Service")); }
}

这时运行测试方法时,提示 "No ParameterResolver registered for parameter" 的错误

这是由于 JUnit 5 默认情况下并不提供自动解析构造函数参数的能力。

最简单的解决方法:换为 @Autowired 注入。

java 复制代码
@SpringBootTest(classes = WeChatServiceImpl.class)
class WeChatServiceImplTest {
	@Autowired
	private IWeChatService weChatService;

	@Test
	void getPhoneNumber() {
		System.out.println(weChatService.getPhoneNumber("Service"));
	}
}

@Autowired 和 构造器 注入 Bean 有什么区别

相关推荐
Liu628886 分钟前
Web开发与API
jvm·数据库·python
m0_743470379 分钟前
Python字典与集合:高效数据管理的艺术
jvm·数据库·python
2501_9454235410 分钟前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
yhole12 分钟前
MySQL无法连接到本地localhost的解决办法2024.11.8
数据库·mysql·adb
2401_8512729914 分钟前
使用Python进行量化交易入门
jvm·数据库·python
jinanmichael18 分钟前
mysql用户名怎么看
数据库·mysql
李少兄24 分钟前
企业资源计划(ERP)系统全景指南
java·前端·数据库·erp
marsh020631 分钟前
17 openclaw数据库连接池配置:避免性能瓶颈的关键
数据库·ai·oracle·编程·技术
2301_818419011 小时前
Python内存管理机制:垃圾回收与引用计数
jvm·数据库·python