【发布时间】:2019-11-14 16:06:29
【问题描述】:
我有一个检查条件并做一些工作的方法。
public void doSomeWork(){
if(!UtilityClass.someCondition()){
context.getmeSomething();
}
}
我的测试看起来像这样。
@Test
public void test(){
myClass.doSomeWork();
PowerMockito.verifyStatic(UtilityClass.class)
when(UtilityClass.someCondition()).thenReturn(false);
verify(mContext, times(1)).getmeSomething();
}
问题是存根被简单地忽略了。无论存根结果如何,测试都会通过。出于同样的原因,从不验证失败,我在测试中从不想要,但在 Mockito 的测试中想要在我的课堂上。我的问题是为什么布尔存根被忽略?
更新 我不确定这对我的原始问题是否重要,但 Utility 类包含在准备测试中,并且在 setUp 中有 mockStatic 调用。
【问题讨论】:
-
必须在调用函数前加上when语句
-
感谢您的快速回复,但同样的存根导致 mockito 抛出“实际上,与此模拟的交互为零”。
-
您是否正确地将上下文模拟到 myClass 中?也许您正在检查与模拟上下文的交互,但您从未将模拟上下文设置为 MyClass 中使用的上下文
标签: android unit-testing mockito