Mockito verify验证Action的使用小结

单元测试中的Action

在单元测试中,某些特定的情况下,是有需要验证某些动作是否被执行的情况,则此时可以考虑使用verify()来验证某个动作是否被执行。

verify()

来自mockit类库,用来验证特定的action是否被调用。
使用示例:

public class VerifyActionTest {
    @Test
    public void testVerify() {
        List<String> mockedList = mock(ArrayList.class);
        mockedList.size(); //invoke the action

        //check whether it is invoked once.
        verify(mockedList).size();

        //size() is invoked in 1 times
        verify(mockedList, times(1)).size();
        verify(mockedList, atLeast(1)).size();
        verify(mockedList, atMost(1)).size();
    }

    @Test
    public void testVerify2() {
        List<String> mockedList = mock(ArrayList.class);

        //there is no action invoked before the current statement
        verifyZeroInteractions(mockedList);
        verify(mockedList, times(0)).size();

        //clear() is never invoked.
        verify(mockedList,never()).clear();

        mockedList.add("abcd");

        //do exactly checking with params.
        verify(mockedList).add("abcd");
        verify(mockedList).add(anyString());
    }

    @Test
    public void testActionInOrder() {
        List<String> mockedList = mock(ArrayList.class);
        mockedList.size();
        mockedList.add("a b");
        mockedList.clear();

        InOrder inOrder = Mockito.inOrder(mockedList);
        inOrder.verify(mockedList).size();
        inOrder.verify(mockedList).add("a b");
        inOrder.verify(mockedList).clear();
    }
}

基于上述示例可以 发现,verify重点要解决的是某些方法是否被调用了,调用了几次,是否带有参数以及带有何种参数。

主要的应用场景就是基于特定条件的判断之后,触发某些动作,这些动作在特定情况是没有返回结果的,只能通过是否被触发执行来做相应的判断。

参考说明

  1. https://www.baeldung.com/mockito-verify
发布了478 篇原创文章 · 获赞 804 · 访问量 433万+

猜你喜欢

转载自blog.csdn.net/blueheart20/article/details/88878426