我有这条线干扰了单元测试:
OtherClass.staticMethodThatWillErrorIfCalled().isAvailable();
如果它不是静态的,我可以模拟OtherClass,然后执行此操作:
Mockito.doReturn(null).when(mockedOtherClass).staticMethodThatWillErrorIfCalled();
Mockito.doReturn(true).when(mockedOtherClass).isGuiMode();
并且如果被调用它会出错会使我尝试使用powermockito徒劳无功。
我不确定我该怎么做。我想要做的就是跳过这一行(这是一个if检查)并继续,好像它已经返回true。这样做的最佳方式是什么?
答案 0 :(得分:0)
我需要更多信息才能提供更具体的答案,但这正是我的想法......
首先告诉PowerMockito您将在OtherClass中模拟静态方法。
@RunWith(PowerMockRunner.class)
@PrepareForTest(OtherClass.class)
这些是单元测试类中的类级别注释。
然后模拟在调用该方法时要做什么。
PowerMockito.mockStatic(OtherClass.class);
Mockito.when(OtherClass.isAvailable()).thenReturn(Boolean.TRUE);
在单元测试的@Before
方法中执行此操作。