JMock无法模拟私有方法

时间:2012-04-21 23:15:44

标签: java unit-testing testing jmock

我正在尝试通过在JMock中模拟类来编写代码来测试方法,此方法在内部调用三种不同的方法(其中一种是私有方法)。我设定了对所有三种内部方法的期望。然后我调用方法,该方法正在测试中。测试用例失败,说它希望调用私有方法并且不调用它。发生的事情是两个内部方法(使用默认访问说明符)被成功模拟但私有方法没有被模拟,实际上控件到达导致问题的实际私有方法内部。当我将私有方法的访问说明符更改为默认访问权限时,一切正常,但我不想这样做。有人可以解释这个行为,让我知道如何解决这个问题

2 个答案:

答案 0 :(得分:1)

JMock无法模拟私有方法,简单明了。 Mockito cannot mock private methods either。如果您真的想模拟私有方法,则需要使用PowerMock框架。

答案 1 :(得分:0)

您也可以使用Jmockit。这是一个很好的库,你可以用于这个用例。您可以使用的关键字:“Deencapsulation”。

相关问题