从正在测试的同一个类中模拟一个void方法

时间:2014-06-27 04:43:19

标签: java junit mockito powermock

我正在尝试使用mockito和powermockito测试方法,此方法在内部调用返回void的方法,我想模​​拟此方法,因为我不关心该方法的结果。我一直在尝试这个,但无法找到解决方案,请帮助我。

我尝试使用powermockito作为

SearchProcedureCodeControllerBean mock = mock(SearchProcedureCodeControllerBean.class);
PowerMockito.doNothing().when(mock).setErrorMessage((String)anyObject(), Mockito.anyList().toArray(), (String)anyObject(), (String)anyObject());

setErrorMessage是void方法,此方法的签名如下

public void setErrorMessage(String errorName, Object[] arguments,
            String messageBundle, String componentId) {
}

1 个答案:

答案 0 :(得分:2)

您只能存储模拟对象的存根方法。经过测试的对象绝对不会被嘲笑。使用Power Mockito,您可以使用静态方法,但不是您的情况。如果您不关心方法行为,请保持这样。它是无效的,所以从根本上说无关紧要。如果确实如此,并且你想抑制它的影响,那就意味着真正的问题在于设计,因为被测试的班级拥有太多的责任。将方法解压缩到另一个类,然后模拟它。