问题描述
我有以下收藏:
Set<DecisionGroup> parentDecisionGroups
首先,在我的测试中,我需要检查此集合是否包含两个具有给定id的对象:
first of all in my test I need to check that this collection contains two objects with a given ids:
assertThat(parentDecisionGroups, hasItem(hasProperty("id", equalTo(decisionGroup1.getId()))));
assertThat(parentDecisionGroups, hasItem(hasProperty("id", equalTo(decisionGroup2.getId()))));
到目前为止一切都很好...
so far so good...
现在,我需要检查parentDecisionGroups.get(0).getOwnerDecision()
(其中parentDecisionGroup.id == DecisionGroup1.getId())等于decision1
和parentDecisionGroups.get(1).getOwnerDecision()
(其中parentDecisionGroup.id == DecisionGroup2.getId())是否等于等于decision2
Right now I need to check that parentDecisionGroups.get(0).getOwnerDecision()
(where parentDecisionGroup.id == decisionGroup1.getId()) is equals to decision1
and parentDecisionGroups.get(1).getOwnerDecision()
(where parentDecisionGroup.id == decisionGroup2.getId()) is equals to decision2
如何使用org.hamcrest.*
和org.junit.Assert.*
完成此操作?
how to do this with org.hamcrest.*
and org.junit.Assert.*
?
推荐答案
您可以使用CombinableMatcher
来both(matcher1).and(matcher2)
匹配器.
所以您会得到类似的东西:
So you'll get something like:
assertThat(parentDecisionGroups, hasItem(
both(hasProperty("id", equalTo(decisionGroup1.getId()))).
and(hasProperty("ownerDecision", equalTo("decision1"))));
这篇关于JUnit声明,匹配器和嵌套对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!