- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有返回记录列表的方法。每条记录都有设置为字段。
public class R {
public final Set s;
}
我有所有预期集合的列表 - 例如:
Set<String> set1 = new HashSet<String>(); set1.add("s1");
Set<String> set2 = new HashSet<String>(); set1.add("s2");
Set<String> set3 = new HashSet<String>(); set1.add("s3");
我想使用 AssertJ(版本 3.11.1)以简单的方式验证响应 List<R>
包含所有已定义的集合或至少这些集合中所有元素的聚合等于集合中元素的聚合set1, set2, set3
注意:下面的解决方案不有效:
Set allElements = new HashSet<String>();
allElements.addAll(set1);
allElements.addAll(set2);
allElements.addAll(set3);
List<R> result = foo();
org.assertj.core.api.Assertions.assertThat(result)
.extracting(record -> record.s)
.containsOnly(allElements);
我得到了:
java.lang.AssertionError:
Expecting:
<[["s1.1", "s1.2"],
["s2.1", "s2.2"],
["s3.1", "s3.2"]]>
to contain only:
<[["s1.1",
"s1.2",
"s2.1",
"s2.2",
"s3.1",
"s3.2"]]>
最佳答案
看起来 containsExactlyInAnyOrderElementsOf
就是答案
解决办法是:
Set<Set<String>> referralSet = new HashSet<>();
referralSet.add(set1);
referralSet.add(set2);
referralSet.add(set3);
org.assertj.core.api.Assertions.assertThat(result)
.extracting(record -> record.s)
.containsExactlyInAnyOrderElementsOf(referralSet);
关于java - 如何在 Assertj Collection of Set 中验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54477600/
使用 Hamcrest 可以很容易地否定匹配器。例如。你可以写一个这样的断言: assertThat("The dog bites Tom", not(stringContainsInOrder(Ar
我找不到如何使用 assertj 检查以下内容(这很常见): 假设我有: result1 = {"AAA", "BBB"} result2 = {"DDD"} 我想检查结果中的值是其中之一: St
下面是一个例子: assertThat(commentById.getId()).isNotNull(); assertThat(commentById.getContent()).isNotBlan
我有一个 spring boot api 应用程序,我使用 springfox 生成 swaggerv2 api 文档,并且我创建了一个测试来查看我的 api 定义是否正确。 我的配置如下: @Con
我使用assertj来做一些espresso中不允许的断言,但我不明白这里的问题,我做了中所说的 here . build.gradle dependencies { // Android Tests
例子: public class Office { List employee; } 我如何在我的 List offices 中断言没有没有员工?是否可以用一个断言链来断言? 最佳答案 如果我正确
在停止开发后,我使用了FEST-Assert并移至AssertJ。 最近,我被指向 Google 存储库以及另一个声明库Truth(http://google.github.io/truth/)。 阅
所以我有一个String/String列表对映射,我想做的是在提取之后,将返回的列表组合成一个列表,在该列表上我可以执行更多的断言: MyTest.java Map> testMap = new H
AbstractIterableAssert#containsOnly说: Verifies that the actual group contains only the given values
我试图了解是否可以配置 AssertJ 将断言的否定结果记录到文件中,而不中断正在运行比较的路由。 此请求背后的原因是,我们正在比较软件的两个版本生成的 JSON 以发现差异,但我不想手动创建所有检查
我正在尝试验证提取列表中的第一项。然而 AssertJ 返回 List而不是 .first() 中的预期对象. 给出以下示例 public class AssertJTests { @Test
有没有办法用 AssertJ 检查对象是否是某个集合的元素?类似的东西 assertThat(actualObject).isElementOf(collectionWithExpectedOptio
我有一个测试用例,其中我使用执行程序服务并调用许多可调用线程。这些线程可能会导致成功调用,也可能会给出异常(这是预期的行为)。我需要断言 future 的对象要么抛出异常,要么返回正确的响应。 for
我想检查正在测试的集合是否包含以特定字符串结尾的任何元素。 对于 Hamcrest,它可能是这样的: assertThat("Contains an element ending with 'xyz'
我有一个可选列表,比如 List> optionals我喜欢用 assertj在它上面断言几件事。 但我没能正确地做到这一点——我只在单个可选上找到示例。 当然我可以自己做所有的检查 Assertio
假设我有一个Map我是这样的: assertThat( spyActionMap.get( "a" ) ).isInstanceOf( Action.class ); ...通过。现在我想检查
我正在使用 AssertJ 进行测试,我注意到有一种方法可以检查 List 是否存在。已排序: public static void sorted(final List actual) {
假设我有一个类 Foo ,它没有实现 Comparable和一个 FooComparator类,它实现 Comparator . 使用 AssertJ 的流畅 API,我现在假设我可以做这样的事情:
有没有一种方法可以在再次使用 AssertJ 时抛出异常来检查原因中的消息是否等于某个字符串。 我目前正在做类似的事情: assertThatThrownBy(() -> SUT.method())
在 AssertJ 中,您可以执行以下操作来断言列表的内容: assertThat(list).extracting("name").containsExactlyInAnyOrder("Alice"
我是一名优秀的程序员,十分优秀!