Mockito中的测试返回语句

问题描述 投票:0回答:1

我有一个代码,里面有一个条件,在某些情况下不执行任何操作,如下所示。我想测试该特定方案。

正在测试的代码,返回语句:

public void someTask(){
    if(somecondition){
        return;
    }else if(){
    //more work to do
    }
}

我到目前为止尝试使用以下方法,但失败了:

@Test
public void testSomeTask(){
    when(mock.somecondition()).thenReturn(true);

    mock.someTask();

    verifyNoMoreInteractions(mock);  //fails
    verifyZeroInteractions(mock);    //fails the above calls this method anyway
}
android junit mockito powermockito
1个回答
0
投票

似乎您正在尝试测试模拟实例的实现。

相反,您应该使用spy且仅模拟somecondition()

然后您需要验证实际的交互。

verify(spy).someTask();
verify(spy).somecondition();
verifyNoMoreInteractions(spy);

verifyZeroInteractions检查将始终失败,因为与该模拟存在交互。

© www.soinside.com 2019 - 2024. All rights reserved.