为了账号安全,请及时绑定邮箱和手机立即绑定

Mokito 无法模拟方法并且断言总是失败

Mokito 无法模拟方法并且断言总是失败

aluckdog 2021-05-30 13:19:11
我无法模拟我的 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 注释。


查看完整回答
反对 回复 2021-06-02
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信