Mockito的高级用法

之前写了一篇关于《用Mockito绕过DAO层直接去测试Service层》,不太全面,这次对之前的做了点补充
有的时候这个方法的返回值是通过参数返回的。比如类似于这样:
public void test(Map map){
    //do something
    map.put("response","success");
}
这个时候需要这样使用:
when( myMock.someMethod( any( Map.class ) ) ).thenAnswer( ( new Answer<Void>() {
    @Override
    public Void answer( InvocationOnMock invocation )
            throws Throwable {
        Object[] args = invocation.getArguments();
        Map arg1 = (Map)args[0];
        arg1.put("response", "failed");
        return null;
    }
} ) );


还有一种用法,返回参数值做为函数返回值
mockito 1.9.5之后,提供一个方便的方法来实现这个需要,在这之前可以使用一个匿名函数来返回一个answer来实现。
when(myMock.myFunction(anyString())).then(returnsFirstArg());
其中returnsFirstArg()是org.mockito.AdditionalAnswers中的一个静态方法。
在这个类中还有其他的一些类似方法
returnsSecondArg()
returnsLastArg()
ReturnsArgumentAt(int position)


眼镜蛇

posted on 2016-07-18 17:18 眼镜蛇 阅读(802) 评论(0)  编辑  收藏 所属分类: JavaMockito


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜