我正在為 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
提交
取消