Mockito的高級用法

          之前寫了一篇關(guān)于《用Mockito繞過DAO層直接去測試Service層》,不太全面,這次對之前的做了點補充
          有的時候這個方法的返回值是通過參數(shù)返回的。比如類似于這樣:
          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;
              }
          } ) );


          還有一種用法,返回參數(shù)值做為函數(shù)返回值
          mockito 1.9.5之后,提供一個方便的方法來實現(xiàn)這個需要,在這之前可以使用一個匿名函數(shù)來返回一個answer來實現(xiàn)。
          when(myMock.myFunction(anyString())).then(returnsFirstArg());
          其中returnsFirstArg()是org.mockito.AdditionalAnswers中的一個靜態(tài)方法。
          在這個類中還有其他的一些類似方法
          returnsSecondArg()
          returnsLastArg()
          ReturnsArgumentAt(int position)


          眼鏡蛇

          posted on 2016-07-18 17:18 眼鏡蛇 閱讀(822) 評論(0)  編輯  收藏 所屬分類: JavaMockito

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統(tǒng)計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 双辽市| 休宁县| 建水县| 石楼县| 南投市| 常宁市| 汕尾市| 和龙市| 东乡县| 潜江市| 高台县| 六枝特区| 江孜县| 青铜峡市| 昌黎县| 阿拉善左旗| 万山特区| 得荣县| 舒城县| 木里| 错那县| 杭州市| 保亭| 枣阳市| 嘉定区| 盐池县| 井研县| 普陀区| 莱阳市| 和田县| 全南县| 彭州市| 固阳县| 扬州市| 兴国县| 中方县| 广水市| 新邵县| 海阳市| 荥阳市| 望江县|