- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
AssertJ 的 assertThat(...).isEqualTo()
方法默认使用 .equals()
进行比较。这通常是正确的选择,但有时您确实想通过精确的对象标识/引用标识进行比较(Java 中的“双等于”==
,“三重等于”===
在 Kotlin 中)。
是否有一种惯用的方法来强制 AssertJ 进行这种比较,例如我不知道的断言方法?
我能做的最好的事情就是通过在没有 AssertJ 的情况下进行比较来解决这个问题,然后仅使用它来检查生成的 boolean 值:
Kotlin :
assertThat(obj1 === obj2).isTrue()
Java:
assertThat(obj1 == obj2).isTrue();
正如我已经暗示的那样,这并不理想,因为 a) 与其他断言相比,它看起来不一致,b) 当断言失败时产生的错误消息只是说“预期为真,结果为假”,这并不像很好地显示了所讨论的不同对象(即使它们仅在内存位置上有所不同,而不是其内容不同)。
最佳答案
AssertJ 惯用的引用比较方式是通过 isSameAs
和 isNotSameAs
:
assertThat(obj1).isSameAs(obj2);
assertThat(obj1).isNotSameAs(obj2);
关于java - 强制 AssertJ 按身份进行比较的惯用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76638706/
使用 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"
我是一名优秀的程序员,十分优秀!