代码之家  ›  专栏  ›  技术社区  ›  Ron Romero

EasyMock:期望集合中的元素数

  •  1
  • Ron Romero  · 技术社区  · 15 年前

    如何在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 他们想分享的火柴?

    2 回复  |  直到 15 年前
        1
  •  3
  •   sfussenegger    15 年前

    根据本合同,集合必须实现等于(..):

    将指定的对象与此集进行相等性比较。退换商品 如果指定的对象也是一个集,则两个集 具有相同的大小,并且指定集的每个成员都是 包含在此集合中(或等效地,此集合的每个成员都是 包含在指定的集合中)。这个定义确保 equals方法在 设置接口。

    一个简单的eq(ecpectedSet)就可以完成这项工作。

    如果只是集的大小,@Guillaume的答案是要走的路。

        2
  •  1
  •   Guillaume    15 年前

    你必须设计你自己的火柴 matches 方法:

    1. 检查参数的数目
    2. 将set参数转换为set
    3. 检查长度

    对不起,我手头没有类似的火柴。

    推荐文章