首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试存储库弹簧org.springframework.beans.factory.UnsatisfiedDependencyException

单元测试存储库弹簧org.springframework.beans.factory.UnsatisfiedDependencyException
EN

Stack Overflow用户
提问于 2018-12-11 09:45:53
回答 1查看 244关注 0票数 2
  1. 我正在使用Spring和MongoDB创建一个简单的学校应用程序。我想测试在服务类中定义的方法,但是我得到了以下异常: org.springframework.beans.factory.UnsatisfiedDependencyException:错误创建具有name'com.backintime.BackInTimeSpring.Service.TeacherServiceTest':不满意依赖关系的bean,该依赖关系通过字段“teacherService”表示;嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:,没有'com.backintime.BackInTimeSpring.Service.TeacherService‘类型的限定bean :预期至少有一个bean可以作为自动事务候选。依赖性注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
  2. 我的课程如下:
  3. 储存库: 包com.backintime.BackInTimeSpring.Model.Repository;@Component @Repository公共接口ITeacherRepository扩展MongoRepository { @Query("{}")流findAllTeachers();List findByLastNameIgnoreCase(String lastName);List findByFirstNameIgnoreCase(String firstName);}
  4. 服务: 包com.backintime.BackInTimeSpring.Service;@Component @Service public { @Autowired ITeacherRepository teacherRepository;public List retrieveAllTeachers(){ .get com.backintime.BackInTimeSpring.Service}公共教师retrieveTeachersById(String id) {.get this.teacherRepository.findAllTeachers().filter(t -> t.getId().equals(id)).findFirst().get();}公共列表this.teacherRepository.findByLastNameIgnoreCase(lastName);(字符串lastName){返回this.teacherRepository.findByFirstNameIgnoreCase(firstName);}公共列表retrieveTeachersByFirstName(String firstName){返回this.teacherRepository.findByFirstNameIgnoreCase(firstName);}公共无效saveTeacher(教师t){ this.teacherRepository.save(t);}公共字符串retrieveTeachersByLastName(){返回"Hello“;} }
  5. Unittest: 包com.backintime.BackInTimeSpring.Service;@RunWith(SpringRunner.class) @ComponentScan(basePackages = "com.backintime.BackInTimeSpring")公共类TeacherServiceTest { @Autowired teacherService;@teacherService.retrieveAllTeachers(){ assertEquals(3,teacherService.retrieveAllTeachers().size();}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-11 09:55:42

这是因为您在错误的地方使用@ComponentScan

通常,它用于主应用程序类或配置类,而不是定义bean的位置。

请参考以下链接:https://springframework.guru/spring-component-scan/

这里有一个类似的问题,正如您所看到的,它们也在主应用程序中使用@ComponentScan

How to use @ComponentScan together with test-specific ContextConfigurations in SpringJunit4TestRunner?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53721342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档