我有一個(gè) UserRepository,它是一個(gè) CRUD 存儲(chǔ)庫,如圖所示:@Repositorypublic interface UserRepository extends CrudRepository<User, Long> {}像這樣的一個(gè) UserController:@RestController@RequestMapping("/api")public class UserController { @Autowired private UserRepository repository; @Autowired private UserResourceAssembler assembler;和一個(gè) 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()); }}當(dāng)我運(yùn)行服務(wù)器時(shí),一切都很好。但是,當(dāng)我運(yùn)行 maven-test 時(shí)出現(xiàn)此錯(cuò)誤:java.lang.IllegalStateException:無法加載 ApplicationContext Caused by:org.springframework.beans.factory.UnsatisfiedDependencyException:創(chuàng)建名稱為“userController”的 bean 時(shí)出錯(cuò):通過字段“repository”表達(dá)的依賴關(guān)系不滿足;嵌套異常是 org.springframework.beans.factory.BeanCreationException:創(chuàng)建名稱為“userRepository”的 bean 時(shí)出錯(cuò):設(shè)置 bean 時(shí)無法創(chuàng)建 [org.springframework.orm.jpa.SharedEntityManagerCreator] 類型的內(nèi)部 bean“(內(nèi)部 bean)#7ba1cdbe”屬性“實(shí)體管理器”;嵌套異常是 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:創(chuàng)建名為“userRepository”的 bean 時(shí)出錯(cuò):無法創(chuàng)建內(nèi)部 bean“(內(nèi)部 bean )#7ba1cdbe'類型為[org.springframework.orm.jpa.SharedEntityManagerCreator]同時(shí)設(shè)置bean屬性'entityManager'; 嵌套異常是
2 回答

慕容森
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
如果你現(xiàn)在有相同的結(jié)構(gòu),我推薦@SpringBootTest
.
@WebMvcTest
不會(huì)將與數(shù)據(jù)庫相關(guān)的 bean 加載到應(yīng)用程序上下文中。

月關(guān)寶盒
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
@WebMvcTest
只加載 Web 層。如果它包含一些依賴項(xiàng),您還需要加載您的應(yīng)用程序上下文。您可以縮小僅在您的控制器中使用的依賴項(xiàng)@ContextConfiguration(classes = {YouTestConfiguration.class})
添加回答
舉報(bào)
0/150
提交
取消