- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将一些测试从 Hamcrest 转换为 AssertJ。在 Hamcrest 中,我使用以下代码段:
assertThat(list, either(contains(Tags.SWEETS, Tags.HIGH))
.or(contains(Tags.SOUPS, Tags.RED)));
anyOf
函数(当然,any 不是任何一个,但这将是第二个问题)需要
Condition
;我自己已经实现了,但感觉好像这应该是一个常见的情况。
最佳答案
编辑:
自 3.12.0 AssertJ 提供 satisfiesAnyOf
哪个成功是给定的断言之一成功,
assertThat(list).satisfiesAnyOf(
listParam -> assertThat(listParam).contains(Tags.SWEETS, Tags.HIGH),
listParam -> assertThat(listParam).contains(Tags.SOUPS, Tags.RED)
);
Set<String> goodTags = newLinkedHashSet("Fine", "Good");
Set<String> badTags = newLinkedHashSet("Bad!", "Awful");
Set<String> tags = newLinkedHashSet("Fine", "Good", "Ok", "?");
// contains is statically imported from ContainsCondition
// anyOf succeeds if one of the conditions is met (logical 'or')
assertThat(tags).has(anyOf(contains(goodTags), contains(badTags)));
import static org.assertj.core.util.Lists.newArrayList;
import java.util.Collection;
import org.assertj.core.api.Condition;
public class ContainsCondition extends Condition<Iterable<String>> {
private Collection<String> collection;
public ContainsCondition(Iterable<String> values) {
super("contains " + values);
this.collection = newArrayList(values);
}
static ContainsCondition contains(Collection<String> set) {
return new ContainsCondition(set);
}
@Override
public boolean matches(Iterable<String> actual) {
Collection<String> values = newArrayList(actual);
for (String string : collection) {
if (!values.contains(string)) return false;
}
return true;
};
}
关于hamcrest - 在 AssertJ 中测试一件事成立还是另一件事成立,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26733985/
使用 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"
我是一名优秀的程序员,十分优秀!