我创建了一个集成测试来测试我刚刚添加的新功能,但 Spring 接线不起作用。单元测试所有工作,现有的 Spring 集成测试仍然有效,但我无法 Autowiring 我的新类
这是错误消息 -
org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“com.xxx.xxx.etc.MyNewClassTest”的bean时出错:通过字段“sut”表达的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有类型为“com.xxx.xxx.etc.MyNewClass”的合格 bean 可用:预计至少有 1 个有资格作为 Autowiring 候选者的 bean。依赖注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
新类(class) -
@Slf4j
@Component
public class MyNewClass extends AbstractRetryJob<Event> {
我的测试 -
@ExtendWith(SpringExtension.class)
class MyNewClassTest {
@Autowired private MyNewClass sut;
知道出了什么问题吗?
最佳答案
添加@ExtendWith(SpringExtension.class)
不足以创建Spring上下文。您需要将 @SpringBootTest
添加到您的 MyNewClassTest
中。根据适当的注释,您可以删除 @ExtendWith(SpringExtension.class)
@SpringBootTest
class MyNewClassTest {
@Autowired private MyNewClass sut;
}
关于java - @Component 在 Spring 测试中未被读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73393836/