我有一堂课:

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")))));


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

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

最佳答案

我仅出于测试目的将数组更改为ArrayList

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


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

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

09-11 18:56