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

Asmartinas

我无法模拟我的getUserCards返回空列表。它总是从数据库获取信息。你有什么想法?我附上我的get请求和模仿实现。我想将getUserCards方法设置为始终返回一个空列表,但不能嘲笑我

@Before
public void setUp() throws Exception{
    //cards.add(new Card());
    CardService mock = Mockito.mock(CardService.class);
    Mockito.when(mock.getUserCards("1234"))
            .thenReturn(cards);
}

@Test
public 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());
}
看看法国

您必须将模拟注入控制器,否则控制器将使用配置中的spring bean。

您可以将模拟传递给Controller构造函数,或阅读有关@ InjectMocks / @ MockBean批注的信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章