我正在为 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个赞
问题是,您的主包和测试包不同:
BookRepository
是app.entity.repository
且您的测试是repository
。尝试将其对齐并将测试移至src/test/java/app/entity/repository
.
慕码人8056858
TA贡献1803条经验 获得超6个赞
您可以通过以下方式使用 BookRepository
@EnableAutoConfiguration
@ContextConfiguration(classes = {BookRepository .class})
public class BookRepositoryTest{
}
当年话下
TA贡献1890条经验 获得超9个赞
我也遇到了类似的问题。我使用 @MockBean 注释注入了依赖类。
@MockBean
private S3StorageService s3StorageService;
上述解决方案对我有用。
添加回答
举报
0/150
提交
取消