2013-05-20 90 views
0

我有一个抽象基类,它定义了具体和抽象方法。我想知道是否有一种方法,使用JMockit来模拟这种类型,以便我可以声明对抽象方法的期望并测试具体方法的实现。使用JMockit测试抽象类的具体方法

很明显,我可以做到这一点,而不使用任何模拟框架只是在我的测试中定义抽象的子类。然后我可以重写抽象方法来返回我需要的任何东西。我只是想知道是否有一个闪烁的黑魔法JMockit方式来做到这一点。

+0

我想过使用'MockUp',但它只适用于接口...最简单的可能是创建一个基本的实现,只返回0/false/null /对所有抽象方法不做任何事情。 – assylias

+2

'MockUp'可以用来模拟任何课程。你不能做的是在模拟类中有一个“抽象”方法的'@ Mock'方法。 –

回答

3

在抽象类上使用@Mocked并记录/验证对其抽象方法的期望。如果要执行模拟类中的非抽象方法,则应用部分模拟,方法是将由JMockit创建的模拟实例传递给构造函数Expectations(Object...)NonStrictExpectations(Object...)