我无法模拟我的 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
提交
取消