java - @Component 在 Spring 测试中未被读取

标签 java spring

我创建了一个集成测试来测试我刚刚添加的新功能,但 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/

相关文章:

java - 如何在此代码中实现 OnItemClickListener?

java - 得到错误的输出?我的编码可能已关闭?

java - 如何更改 Firefox WebDriver 端口

Spring Controller 和拦截器之间是什么

javascript - Spring 中页面为 .html 时的 session 处理

java - JVM 可以缓存对象的字段吗?

java - 创建 bean entityManagerFactory 时出错,NoSuchMethodError : javax/persistence/Table. 索引

Java - Hibernate 调用 MySql 存储过程 - 警告消息

Spring boot @Transactional 不起作用

java - 在java配置中启用hibernate验证fail_fast