ArgumentCaptor应该放在.verify()之外吗?
创始人
2024-09-13 07:30:33
0

在进行Mockito测试时,常常需要验证参数是否正确传递给了Mock对象的方法。此时,我们可以使用ArgumentCaptor来捕获传入Mock对象方法的参数值。然而,在使用ArgumentCaptor时,有时候会遇到一个问题:ArgumentCaptor是否应该放在.verify()之外。

一般情况下,我们应该将ArgumentCaptor放在.verify()之前,以便在verify()中编写更加清晰和简明的代码。例如:

// 定义一个Mock对象 List mockedList = mock(List.class);

// 调用mock对象的add方法 mockedList.add("one");

// 使用ArgumentCaptor捕获参数 ArgumentCaptor argument = ArgumentCaptor.forClass(String.class); verify(mockedList).add(argument.capture());

// 验证参数值是否正确 assertEquals("one", argument.getValue());

然而,有时我们可能需要将ArgumentCaptor放在verify()之后,例如:

// 定义一个Mock对象 List mockedList = mock(List.class); List anotherMockedList = mock(List.class);

// 调用mock对象的add方法 mockedList.add("one");

// 使用ArgumentCaptor捕获参数 ArgumentCaptor argument = ArgumentCaptor.forClass(String.class);

// 在另一个mock对象上调用add方法 anotherMockedList.add("two");

// 验证参数值是否正确 verify(mockedList).add(argument.capture()); assertEquals("one", argument.getValue());

在这种情况下,我们需要在.verify()之后使用ArgumentCaptor捕获参数,并且需要在验证参数值之前使用getValue()方法来获取参数值。

因此,根据具体情况,我们可以选择将ArgumentCaptor放在.verify()之前或之后。无论怎样选择,我们都应该编写清晰简明的测试代码来确保测试的正确性和可读性。

相关内容

热门资讯

透视辅助!wpk辅助器安装,x... 透视辅助!wpk辅助器安装,xpoker辅助器,德州教程(本来有挂);致您一封信;亲爱wpk辅助器安...
透视有挂!wepoker透视脚... 透视有挂!wepoker透视脚本网页,wepoker怎么发冤家牌,2025新版总结(最初存在有挂)需...
透视透视挂!hhpoker透视... 自定义hhpoker透视脚本下载系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅...
透视了解!德普之星怎么作弊,w... 透视了解!德普之星怎么作弊,wepoker辅助器安装包,第三方教程(最初有挂)科技教程也叫必备教程,...
透视智能ai!hhpoker透... 透视智能ai!hhpoker透视下载链接在哪里,云扑克有透视吗,解说技巧(从来真的有挂)准备好在hh...
透视讲解!wepoker透视脚... 透视讲解!wepoker透视脚本苹果,wejoker辅助器怎么卖,线上教程(从来存在有挂);致您一封...
透视了解!德普之星透视辅助软件... 透视了解!德普之星透视辅助软件是真的吗,wepoker黑侠破解,曝光教程(最初是有挂)关于德普之星透...
透视实锤!德普之星透视辅助插件... 透视实锤!德普之星透视辅助插件,wpk软件是正规的吗,2025新版技巧(确实真的有挂);大神普及一款...
透视中牌率!hhpoker万能... 1、透视中牌率!hhpoker万能辅助器,wepoker好友房开挂,插件教程(果然存在有挂);详细教...
透视科技!wpk透视辅助方法,... 透视科技!wpk透视辅助方法,德扑HHpoker有挂吗,揭秘攻略(原本真的是有挂);科技安装教程;1...