Mockito:如何验证传递给我的方法的数组是否包含正确的对象?

Dav*_*ave 2 java junit arguments verify mockito

I\xe2\x80\x99m 使用 Mockito 1.9.5。我想验证我的方法(以数组作为参数)被调用,其中数组恰好包含一个特定对象。我\xe2\x80\x99m 无法弄清楚如何执行此操作。我有

\n\n
Mockito.doReturn(new SaveResult[]{}).when(mockConnection).update(org.mockito.Matchers.any(SObject[].class));\n\xe2\x80\xa6     \n\nMockito.verify(mockConnection, Mockito.times(1)).update( new Account[]{ acct });\n
Run Code Online (Sandbox Code Playgroud)\n\n

毫不奇怪,第二行失败,因为尽管参数 \xe2\x80\x9cacct\xe2\x80\x9d 与传递的内容相同,但封闭的数组却不同。检查此情况的最佳方法是什么?

\n

Mur*_*nik 5

Mockito 有一个内置匹配器,AdditionalMatchaer#aryEq(T[])正好适合这个用例:

Mockito.verify(mockConnection, Mockito.times(1))
       .update(aryEq(new Account[]{ acct }));
Run Code Online (Sandbox Code Playgroud)