有没有一种方法可以将子字段的值与hamcrest进行比较?

class Obj{
    NestedObj nestedObj;
}

class NestedObj{
    String wantedProperty;
}


我有一个List<Obj> objs,我想测试所有ObjswantedProperty值是否为“ wand”:

List<Obj> objs = new ArrayList<Obj>();

Obj obj = new Obj();
NestedObj nestedObj = new NestedObj();
nestedObj.setWantedProperty("wanted");
obj.setNestedObj(nestedObj);
objs.add(obj);

assertThat(objs, hasItems(Matchers.<Obj>hasProperty("nestedObj.wantedProperty", hasValue("wanted"))));


但是nestedObj.wantedProperty不起作用。

如果可以的话,我该如何运作?

最佳答案

尝试这样的事情

assertThat(objs, hasItems(Matchers.<Obj>hasProperty("nestedObj", Matchers.<NestedObj>hasProperty("wantedProperty",equalTo("wanted")))));

10-04 19:46