在使用kotlin的springboot测试中使用和不使用@Autowired Constructor有什么区别
What is difference between using and not using @Autowired Constructor in springboot test with kotlin
我想在 spring boot 2.3.0.
中使用 JUnit5 编写测试代码
首先,我尝试使用构造函数进行依赖注入。
喜欢下面
但是当我开始我的测试代码时,整个测试都失败了。
错误日志为 No ParameterResolver registered for parameter blah blah blah...
所以我认为 Bean Injenction 失败了,即使我使用了构造函数。
此外,即使我使用了 Intellij 中的构造函数,Bean 图标也没有出现 IDE。
但是当我在构造函数中添加@Autowired constructor
时,Bean图标开始出现。
喜欢下面
资源Class是一个只在测试代码中使用的bean。
我可以解决问题,但我真的不明白发生了什么。
我想知道What is difference between using and not using @Autowired Constructor
请告诉我这个神奇的 @Autowired Constructor
是如何工作的
测试用例构造函数上的 @Autowired
是测试框架(在本例中是 Jupiter SpringExtension)使用 Spring 上下文解析构造函数参数的信号.如果没有注释,Jupiter 会尝试通过其他机制查找参数解析器,但没有找到,因此会出现错误。
我想在 spring boot 2.3.0.
中使用 JUnit5 编写测试代码首先,我尝试使用构造函数进行依赖注入。
喜欢下面
但是当我开始我的测试代码时,整个测试都失败了。
错误日志为 No ParameterResolver registered for parameter blah blah blah...
所以我认为 Bean Injenction 失败了,即使我使用了构造函数。
此外,即使我使用了 Intellij 中的构造函数,Bean 图标也没有出现 IDE。
但是当我在构造函数中添加@Autowired constructor
时,Bean图标开始出现。
喜欢下面
资源Class是一个只在测试代码中使用的bean。
我可以解决问题,但我真的不明白发生了什么。
我想知道What is difference between using and not using @Autowired Constructor
请告诉我这个神奇的 @Autowired Constructor
是如何工作的
@Autowired
是测试框架(在本例中是 Jupiter SpringExtension)使用 Spring 上下文解析构造函数参数的信号.如果没有注释,Jupiter 会尝试通过其他机制查找参数解析器,但没有找到,因此会出现错误。