【发布时间】:2015-05-15 01:14:36
【问题描述】:
我有这行干扰单元测试:
OtherClass.staticMethodThatWillErrorIfCalled().isAvailable();
如果它不是静态的,我可以模拟 OtherClass 然后这样做:
Mockito.doReturn(null).when(mockedOtherClass).staticMethodThatWillErrorIfCalled();
Mockito.doReturn(true).when(mockedOtherClass).isGuiMode();
如果调用它会出错,这一事实使我尝试使用 powermockito 是徒劳的。
我不确定我该怎么做。我想要做的就是跳过这一行(这是一个 if 检查)并继续,就好像它返回了 true。最好的方法是什么?
【问题讨论】:
-
请发布更多信息,整个单元测试将是一个好的开始。是否正在测试类中的静态方法?
-
嘲笑它。您可以模拟静态。
-
@AlexBuyny 我只是在 ClassToBeTested 中执行一个方法,但该方法具有我所说的 if 检查,它将调用引发错误的静态方法。我不关心在 OtherClass 中测试静态方法或其他任何东西我只想得到一个返回的真实值,以便我可以在 ClassToBeTested 中执行和测试方法
-
@DaveNewton 是的,但是因为它是静态的,所以它会调用该方法,因此会抛出错误。我想跳过该方法。
-
看看here这篇文章有一些处理静态的方法
标签: junit mocking mockito powermockito