使用自定义对象验证数组

时间:2014-06-04 08:05:49

标签: java junit hamcrest

我有一个班级:

public class MyCustomObject {
    private String field1;
    private String field2;
}

我创建了 MyCustomObject

的数组
MyCustomObject[] array = new MyCustomObject[]{new MyCustomObject()};

我的目标是使用hamcrest匹配器验证此数组的元素。我尝试了以下方法:

assertThat(array, allOf(hasItemInArray(hasProperty("field1", equalTo("value1")))), hasItemInArray(hasProperty("field2", equalTo("value2")))));

但不幸的是,它不起作用。

可以通过哪种方式验证自定义对象的数组?

2 个答案:

答案 0 :(得分:0)

我会将您的数组更改为ArrayList仅用于测试目的:

List<MyCustomObject> customObjects = Arrays.asList(array);

如果列表中存在预期的项目,则使用Hamcrest hasItems Matcher断言:

assertThat(customObjects, hasItems(myCustomObject1, myCustomObject2));

答案 1 :(得分:0)

您是否尝试过在课堂上添加getter?这对我有用。

public class MyCustomObject {
    private String field1;
    private String field2;

    public String getField1() {
        return field1;
    }

    public String getField2() {
        return field2;
    }
}