我無法模擬我的 getUserCards 返回空列表。它總是從數據庫中獲取信息。你有什么想法?我附上我的 get 請求和 mockito 實現。我想設置 getUserCards 方法總是返回一個空列表,但我不能被嘲笑@Beforepublic void setUp() throws Exception{ //cards.add(new Card()); CardService mock = Mockito.mock(CardService.class); Mockito.when(mock.getUserCards("1234")) .thenReturn(cards);}@Testpublic void testMockCards() throws Exception{ mockMvc = MockMvcBuilders.standaloneSetup(cardController).build(); MockHttpServletResponse response = mockMvc.perform( MockMvcRequestBuilders.get("/cards") ) .andDo(MockMvcResultHandlers.print()) .andExpect(MockMvcResultMatchers.status().isOk()) .andReturn().getResponse(); ObjectMapper mapper = new ObjectMapper(); List<Card> cardResponse = mapper.readValue(response.getContentAsString(), new TypeReference<List<Card>>(){}); Assert.assertEquals(cards, cardResponse);}得到@RequestMapping(value = "/cards", method = RequestMethod.GET)@JsonView(Views.Public.class)public List<Card> getUserCards({ session.getEntityUserId());}
1 回答

當年話下
TA貢獻1890條經驗 獲得超9個贊
您必須將模擬注入控制器,否則您的控制器將使用配置中的 spring bean。
您可以將模擬傳遞給 Controller 構造函數或閱讀 @InjectMocks/@MockBean 注釋。
添加回答
舉報
0/150
提交
取消