为了账号安全,请及时绑定邮箱和手机立即绑定

UnsatisfiedDependencyException:在 Junit 测试中创建名为

UnsatisfiedDependencyException:在 Junit 测试中创建名为

蛊毒传说 2023-07-13 18:08:31
我正在为 Spring 数据存储库编写 junit 测试。但我无法自动装配存储库接口。如果我运行 main 方法,并且 spring 可以检测到所有存储库、服务、实体,则程序正在运行,但如果我运行测试,则会出现以下错误:UnsatisfiedDependencyException:创建名称为“repository.BookRepositoryTest”的 bean 时出错:通过字段“bookRepository”表达的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有可用的“app.repository.BookRepository”类型的合格 bean:预计至少有 1 个符合自动装配候选资格的 bean。依赖注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}@RunWith(SpringRunner.class)@SpringBootTest(classes={BookRepository.class})public class BookRepositoryTest{    @Autowired    private BookRepository bookRepository;    @Test    public void save()    {        Book book=new Book();        bookRepository.save(book);    }}public interface BookRepository extends JpaRepository<Book,Integer>{    Book findByName(String name);}项目结构:src    main        java            app                entity                    Book.java                repository                    BookRepository.java                service                    BookService.java                App.java        resources            application.properties        webapp    test        java            repository                BookRepositoryTest.java
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

问题是,您的主包和测试包不同:

BookRepositoryapp.entity.repository且您的测试是repository。尝试将其对齐并将测试移至src/test/java/app/entity/repository.



查看完整回答
反对 回复 2023-07-13
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

您可以通过以下方式使用 BookRepository


@EnableAutoConfiguration

@ContextConfiguration(classes = {BookRepository .class})

public class BookRepositoryTest{

}


查看完整回答
反对 回复 2023-07-13
?
当年话下

TA贡献1890条经验 获得超9个赞

我也遇到了类似的问题。我使用 @MockBean 注释注入了依赖类。


@MockBean

private S3StorageService s3StorageService;

上述解决方案对我有用。


查看完整回答
反对 回复 2023-07-13
  • 3 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信