gpt4 book ai didi

java - 如何使用 hamcrest 断言 Set 具有具有确切属性的项目

转载 作者:搜寻专家 更新时间:2023-11-01 03:34:31 24 4
gpt4 key购买 nike

我一直在尝试使用这个 solution 断言我的 Set 具有带有 hamcrest 的给定属性的集合,但我有:

java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Description;)V at org.hamcrest.Condition$Matched.matching(Condition.java:52)

导入:

import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasProperty;
import static org.junit.Assert.assertThat;

代码:

assertThat(mySet, contains(hasProperty("id", equalTo("expectedId"))));

你有什么想法如何很好地断言它吗?

最佳答案

那么,您应该尝试让 assertThat 为您完成工作。

Set<WhateverPropertyTypeYouAreUsing> expectedSet = Collections.singleton( ... create a property object with that id/value);

assertThat(mySet, is(expectedSet))

此处的限制:假定您的集合仅包含一个属性值。

否则,你可以去:

assertThat(mySet.contains(someProperty), is(true))

(可能带有附加消息以更好地描述失败的断言)。

先决条件:您的属性类应该以合理的方式实现 equals()。

关于java - 如何使用 hamcrest 断言 Set 具有具有确切属性的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35362377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com