参数捕获器Mockito

19

我一直在阅读关于参数捕获器的内容,但是越读越迷惑。有没有人能举个例子来解释一下这个概念呢?


1
可能是如何使用ArgumentCaptor进行存根?的重复问题。 - tkruse
1个回答

25
根据文档,此方法已被废弃。为了避免出现NullPointerException,请使用forClass(Class)工厂方法来创建捕获器。请参见这里
示例:
  ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);
  verify(mock).doSomething(argument.capture());
  assertEquals("John", argument.getValue().getName());

2
谢谢提供信息,Rachel,但我更想了解它的工作原理。阅读了几篇博客后,我对如何正确使用它感到困惑。所以,如果您能用一个例子来解释一下,那就太好了。谢谢。 - user123
1
你应该阅读类似的SO问题:https://dev59.com/WWct5IYBdhLWcg3wKqa9 - Rachel Gallen
谢谢,这很有帮助。我在搜索时从未遇到过它。 - user123
3
ArgumentCaptor类的无参构造函数已被弃用。ArgumentCaptors本身肯定没有被弃用。实际上,它们是一种非常有用的技术。 - Dawood ibn Kareem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接