如何验证是否使用任何参数调用方法?

时间:2014-03-24 08:40:03

标签: java junit mockito

我想与Mockito verify()无论方法是否被调用。因为我不知道这个论点我想以这样的方式做到这一点,它用any()参数进行验证。可能吗?目前我得到“错误,想要x并找到y”。 我不关心传递的参数,我只想知道该方法是否被调用。 提前谢谢。

截至目前,我已尝试过:

when(userBean.getProfile().getLanguage().getValue()).thenReturn("fr");
verify((userBean), atLeastOnce()).getProfile().getLanguage().getValue();

userBean已使用RETURN_DEEP_STUBS进行模拟。但是获取空指针异常。可能是因为userBean是一个EJB?

1 个答案:

答案 0 :(得分:1)

Mockito documentation for RETURNS_DEEP_STUBS

一样
  

验证仅适用于链中的最后一个模拟。您可以使用验证模式。

对于你的例子:

 /* BAD */ verify(userBean, atLeastOnce()).getProfile().getLanguage().getValue();
/* GOOD */ verify(userBean.getProfile().getLanguage(), atLeastOnce()).getValue();

(作为指向文档链接的单独答案添加。)