2.10 在verification中捕获调用参数

单次调用捕获

使用withCapture()捕获最后一次调用的参数。

@Test
public void capturingArgumentsFromSingleInvocation(@Mocked final Collaborator mock)
{
   new Collaborator().doSomething(0.5, new int[2], "test");

   new Verifications() {{
      double d;
      String s;
      mock.doSomething(d = withCapture(), null, s = withCapture());

      assertTrue(d > 0.0);
      assertTrue(s.length() > 1);
   }};
}

多次调用捕获

使用withCapture(List)捕获所有参数。

@Test
public void capturingArgumentsFromMultipleInvocations(@Mocked final Collaborator mock)
{
   mock.doSomething(dataObject1);
   mock.doSomething(dataObject2);

   new Verifications() {{
      List<DataObject> dataObjects = new ArrayList<>();
      mock.doSomething(withCapture(dataObjects));

      assertEquals(2, dataObjects.size());
      DataObject data1 = dataObjects.get(0);
      DataObject data2 = dataObjects.get(1);
      // Perform arbitrary assertions on data1 and data2.
   }};
}

捕获新实例

使用withCapture(new XX())

@Test
public void capturingNewInstances(@Mocked Person mockedPerson) {
   new Person("Paul", 10);
   new Person("Mary", 15);
   new Person("Joe", 20);

   new Verifications() {{
      List<Person> personsInstantiated = withCapture(new Person(anyString, anyInt));
   }};
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,264评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,730评论 18 399
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 6,360评论 0 3
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,934评论 0 17
  • 鸡 冠红饰金装, 阔步气轩昂。 朝来我不叫, 旭日敢东升? 如梦令 秋乱不知归路,黄叶尽飞夕暮。 凉夜又深沉,花落...
    学好奇门遁甲阅读 2,047评论 0 0

友情链接更多精彩内容