0

我有这行干扰单元测试:

OtherClass.staticMethodThatWillErrorIfCalled().isAvailable();

如果它不是静态的,我可以模拟 OtherClass 然后这样做:

Mockito.doReturn(null).when(mockedOtherClass).staticMethodThatWillErrorIfCalled();
Mockito.doReturn(true).when(mockedOtherClass).isGuiMode();

如果调用它会出错,这一事实使我尝试使用 powermockito 是徒劳的。

我不确定我该怎么做。我要做的就是跳过这一行(这是一个 if 检查)并继续,就好像它返回了 true。做这个的最好方式是什么?

4

1 回答 1

1

我需要更多信息才能给出更具体的答案,但这就是我的想法......

首先告诉 PowerMockito,您将在 OtherClass 中模拟一个静态方法。

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

这些是在您的单元测试类中进行的类级别注释。

然后模拟调用该方法时要做什么。

PowerMockito.mockStatic(OtherClass.class);
Mockito.when(OtherClass.isAvailable()).thenReturn(Boolean.TRUE);

@Before在您的单元测试方法中执行此操作。

于 2015-05-15T16:04:15.940 回答