当前位置: 首页 > 知识库问答 >
问题:

预计至少有 1 颗符合测试自动布线候选资格的咖啡豆

卓嘉良
2023-03-14

我在Spring是新来的。我正在使用Spring Boot创建控制台应用程序。应用程序工作正常,但当我尝试测试存储库时,我得到一个错误

< code >原因:org . spring framework . beans . factory . unsatisfieddependencyexception:创建名为“universitymanagerspringbootsapplication”的bean时出错:通过构造函数参数0表示的未满足的依赖关系;嵌套异常为org . spring framework . beans . factory . nosuchbeandetification异常:没有类型为“com . universitymanager . spring boot . engine . response generator”的合格bean可用:应至少有一个符合autowire候选资格的bean。依赖项批注:{}

请帮帮忙

响应发生器

@Component
@AllArgsConstructor
public class ResponseGenerator {

    private final DepartmentsRepository departmentsRepository;
    private final LectorsRepository lectorsRepository;
...

部门

@Entity
@NoArgsConstructor
@Setter
@Getter
@ToString
@Table(name = "departments")
public class Departments {
...

演讲者

@Entity
@NoArgsConstructor
@Setter
@Getter
@ToString
@Table(name = "lectors")
public class Lectors {
...

部门资源库

@Repository
public interface DepartmentsRepository extends CrudRepository<Departments, Integer> {
...

LectorsRepository

@Repository
public interface LectorsRepository extends CrudRepository<Lectors, Integer> {
...

universitymanager spring boot application

@SpringBootApplication
@AllArgsConstructor
public class UniversityManagerSpringBootApplication implements CommandLineRunner {

    private ResponseGenerator responseGenerator;

    public static void main(String[] args) {
        SpringApplication.run(UniversityManagerSpringBootApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
...

部门存储库测试(导致的错误)

@DataJpaTest
class DepartmentsRepositoryTest {

    @Autowired
    private DepartmentsRepository departmentsRepository;

    @Test
    void injectedComponentIsNotNull(){
        assertNotNull(departmentsRepository);
    }
...

共有3个答案

漆雕升
2023-03-14

如果您使用的是TestNG,请尝试让您的测试类扩展AbstractTestNGSpringContextTest,这有助于访问TestNG中的Spring组件。

public class DepartmentsRepositoryTest extends AbstractTestNGSpringContextTests
琴镜
2023-03-14

我找到了解决问题的方法!这对我来说很好 https://stackoverflow.com/a/29774201/15349979

很高兴这能帮助某人

颜嘉福
2023-03-14

请尝试在测试中将@DataJpaTest更改为@SpringBootTest,以使Spring在完整的应用程序上下文中设置,包括响应生成器bean。

@DataJpaTest的文档说明:

使用此注释将禁用完全自动配置,而是仅应用与 JPA 测试相关的配置。

因此,使用这个注释,您不会得到stacktrace引用的ResponseGenerator bean。

 类似资料: