JUnit 断言、匹配器和嵌套对象
JUnit Assert, Matchers and nested objects
我有以下合集:
Set<DecisionGroup> parentDecisionGroups
首先,在我的测试中,我需要检查这个集合是否包含两个具有给定 ID 的对象:
assertThat(parentDecisionGroups, hasItem(hasProperty("id", equalTo(decisionGroup1.getId()))));
assertThat(parentDecisionGroups, hasItem(hasProperty("id", equalTo(decisionGroup2.getId()))));
到目前为止一切顺利...
现在我需要检查 parentDecisionGroups.get(0).getOwnerDecision()
(其中 parentDecisionGroup.id == decisionGroup1.getId())等于 decision1
和 parentDecisionGroups.get(1).getOwnerDecision()
(其中parentDecisionGroup.id == decisionGroup2.getId()) 等于 decision2
如何用 org.hamcrest.*
和 org.junit.Assert.*
做到这一点?
您可以使用 CombinableMatcher
来 both(matcher1).and(matcher2)
匹配器。
所以你会得到这样的东西:
assertThat(parentDecisionGroups, hasItem(
both(hasProperty("id", equalTo(decisionGroup1.getId()))).
and(hasProperty("ownerDecision", equalTo("decision1"))));
我有以下合集:
Set<DecisionGroup> parentDecisionGroups
首先,在我的测试中,我需要检查这个集合是否包含两个具有给定 ID 的对象:
assertThat(parentDecisionGroups, hasItem(hasProperty("id", equalTo(decisionGroup1.getId()))));
assertThat(parentDecisionGroups, hasItem(hasProperty("id", equalTo(decisionGroup2.getId()))));
到目前为止一切顺利...
现在我需要检查 parentDecisionGroups.get(0).getOwnerDecision()
(其中 parentDecisionGroup.id == decisionGroup1.getId())等于 decision1
和 parentDecisionGroups.get(1).getOwnerDecision()
(其中parentDecisionGroup.id == decisionGroup2.getId()) 等于 decision2
如何用 org.hamcrest.*
和 org.junit.Assert.*
做到这一点?
您可以使用 CombinableMatcher
来 both(matcher1).and(matcher2)
匹配器。
所以你会得到这样的东西:
assertThat(parentDecisionGroups, hasItem(
both(hasProperty("id", equalTo(decisionGroup1.getId()))).
and(hasProperty("ownerDecision", equalTo("decision1"))));