Mockito的高級用法

          之前寫了一篇關于《用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)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 两当县| 攀枝花市| 香河县| 酉阳| 海城市| 普安县| 绥滨县| 桐柏县| 通化县| 柳江县| 麻栗坡县| 财经| 乌拉特中旗| 昌都县| 石棉县| 互助| 广灵县| 城固县| 江口县| 漳平市| 海门市| 屏边| 威信县| 邳州市| 台东县| 宁陵县| 二手房| 康定县| 绍兴县| 高雄市| 监利县| 兴隆县| 华容县| 海林市| 汨罗市| 平昌县| 台湾省| 芮城县| 大理市| 温宿县| 安平县|