如何在Easymock中验证集合中的元素数量?我正在测试的类应调用一个方法,并传入具有n个元素的集合。现在,我正在为列表匹配任何对象:
mockFooSetReceiver.saveFooSet(eq(name),
(List<IFooSet>) anyObject());
replay(mockFooSetReceiver);
我想指定集合中元素的数量:
mockFooSetReceiver.saveFooSet(eq(name),
setOfNObject(100));
replay(mockFooSetReceiver);
或更妙的是,匹配集合中的元素:
mockFooSetReceiver.saveFooSet(eq(name),
setEq(ecpectedSet));
replay(mockFooSetReceiver);
我是否必须推出自己的匹配器,是否内置了匹配器?还是有人想要共享
setOfNObject
或setEq
匹配器? 最佳答案
根据此合同,As Set必须实现equals(..):
比较指定对象与此设置是否相等。退货
如果指定对象也是一个集合,则为true,两个集合
具有相同的大小,并且指定集中的每个成员都是
包含在此集合中(或等效地,此集合中的每个成员都是
包含在指定的集合中)。此定义可确保
equals方法可在不同的实现中正常工作
设置界面。
一个简单的EasyMock.eq(ecpectedSet)即可完成工作。
如果只是集合的大小,那么@Guillaume的答案就是正确的选择。