安排表达

时间:2014-08-08 09:56:25

标签: junit ejb mockito schedule

我正在尝试为包含ScheduleExpression的方法创建一个Junit测试。我曾尝试使用PowerMockito来模拟它,但我仍然收到一条错误消息,内容为

java.lang.ClassFormatError: Absent Code attribute in method 
that is not native or abstract in class file javax/ejb/ScheduleExpression

以下是我使用PowerMockito的方式

 ScheduleExpression expression = PowerMockito.mock(ScheduleExpression.class);

我试过了注释

@RunWith(PowerMockRunner.class)
@PrepareForTest(Static.class)

但他们没有工作。

我也尝试了Mockito版本1.9.5,但我得到了同样的错误。我错过了pom依赖吗?

有没有办法模拟ScheduleExpression?

1 个答案:

答案 0 :(得分:1)

您必须使用您希望PowerMock准备的类的名称......

@PrepareForTest(ScheduleExpression.class)

但是,在您的情况下,我不认为需要使用PowerMock,因为ScheduleExpression不是最终版,或者您可能试图模仿私有或静态方法。

尝试使用香草Mockito而不是像这样的PowerMockito ......

@RunWith(MockitoJUnitRunner.class)
...
ScheduleExpression expression = Mockito.mock(ScheduleExpression.class);