亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring Boot 測試無法解決存儲庫依賴性

Spring Boot 測試無法解決存儲庫依賴性

侃侃無極 2023-05-17 14:58:30
我有一個 UserRepository,它是一個 CRUD 存儲庫,如圖所示:@Repositorypublic interface UserRepository extends CrudRepository<User, Long> {}像這樣的一個 UserController:@RestController@RequestMapping("/api")public class UserController {    @Autowired    private UserRepository repository;    @Autowired    private UserResourceAssembler assembler;和一個 WebMvcTest 類來測試我的 UserController:@RunWith(SpringRunner.class)@WebMvcTest(UserController.class)public class UserControllerTest {  @Autowired  private MockMvc mvc;  @Test  public void getAllEmployeesAPI() throws Exception  {    mvc.perform( MockMvcRequestBuilders        .get("/api/users")        .accept(MediaType.APPLICATION_JSON))        .andDo(print())        .andExpect(status().isOk());  }}當我運行服務器時,一切都很好。但是,當我運行 maven-test 時出現此錯誤:java.lang.IllegalStateException:無法加載 ApplicationContext Caused by:org.springframework.beans.factory.UnsatisfiedDependencyException:創建名稱為“userController”的 bean 時出錯:通過字段“repository”表達的依賴關系不滿足;嵌套異常是 org.springframework.beans.factory.BeanCreationException:創建名稱為“userRepository”的 bean 時出錯:設置 bean 時無法創建 [org.springframework.orm.jpa.SharedEntityManagerCreator] 類型的內部 bean“(內部 bean)#7ba1cdbe”屬性“實體管理器”;嵌套異常是 org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#7ba1cdbe': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; 嵌套異常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:沒有名為“entityManagerFactory”的 bean 可用 原因:org.springframework.beans.factory.BeanCreationException:創建名為“userRepository”的 bean 時出錯:無法創建內部 bean“(內部 bean )#7ba1cdbe'類型為[org.springframework.orm.jpa.SharedEntityManagerCreator]同時設置bean屬性'entityManager'; 嵌套異常是 
查看完整描述

2 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

如果你現在有相同的結構,我推薦@SpringBootTest.

@WebMvcTest不會將與數據庫相關的 bean 加載到應用程序上下文中。


查看完整回答
反對 回復 2023-05-17
?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

@WebMvcTest只加載 Web 層。如果它包含一些依賴項,您還需要加載您的應用程序上下文。您可以縮小僅在您的控制器中使用的依賴項@ContextConfiguration(classes = {YouTestConfiguration.class})



查看完整回答
反對 回復 2023-05-17
  • 2 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號