问题标签 [assertj]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在代码中表达这个特殊的数组断言?
我目前正在使用 FEST 或 AssertJ 进行断言。我遇到了一个我想断言流动数组的结:
那么我该如何写这样的断言
我在 FEST 中没有看到 containsOthers,或者我错过了同等的东西?我有点惊讶 FEST 或 AssertJ 不能断言从某个指定索引开始的索引范围,因为它们强调流畅简洁的断言代码。还是有好的选择?
到目前为止,我必须将它分成两个断言并手动取出第一个元素进行检查,然后取出其他元素进行检查,总共三行。那是一团糟。
java - 泛型和 ClassCastException:为什么我会得到这个异常,我该如何“解决”它?
对于我的一个项目,我试图摆脱基于字符串的单元测试;我现在作为目标的一门课是ParsingResult
。
我已经成功地用自定义AssertJ断言转换了另一个类,所以我现在正在尝试为我的下一个“受害者”编写一个自定义断言类。课程是这样的:
为了对其进行测试,我尝试将其插入到我最终要删除的测试文件中:
在标记的行中HERE
,它失败了:
堆栈跟踪的最后一行是这一行:
这org.assertj.core.api.AbstractAssert.<init>(AbstractAssert.java:63)
是:
但我迷路了;我无法理解为什么会发生这种情况。我已经成功编写了两个自定义断言(here和here),但这是我第一次看到这个错误;这里唯一的区别是我尝试为其创建断言类的类有一个类型参数。
我错过了什么?
java - 如何使用 FEST assertThat(...) 方法测试类对象之间的相等性?
如何使用 FESTassertThat(...)
方法测试类对象是否相等?
例子:
以上不编译。该isEqualTo
方法抱怨。我应该使用其他方法来测试类对象之间的相等性吗?
java - 如何使用 assertj 对键和值进行更深入的匹配
假设我有这样的课程:
后来,一张地图
使用 assertj,测试 characterAges 是否包含“Frodo”字符的最佳方法是什么?对于这个年龄,我可以这样做:
我知道我可以做到:
但后来我失去了流利度。我真正想要的是这样的:
甚至更好,这样我就可以确保我的键和值匹配:
这样的事情可能吗?
android - 为 androidTest 增加 minSdk
什么是增加 androidTest 的 minSDK 的好方法?背景是这样的:
我不只是想增加 minSDK 并为仅用于测试的库删除用户。
java - Ambiguous method call with Lambda in Java
I have defined a static assertThat
method to extend AssertJ. This method accepts a lambda expression of the type:
The signature looks like this:
I want to use this method with a static import. But it is ambiguous. The compiler doesn't know whether assertThat(Iterable) or my method should be used. I don't understand how a void
method can conflict with a method that returns an Iterator<T>
.
Any idea how to resolve this conflict (without writing the class name in front of assertThat
)?
hamcrest - 在 AssertJ 中测试一件事或另一件事是否成立
我正在将一些测试从 Hamcrest 转换为 AssertJ。在 Hamcrest 中,我使用以下代码段:
也就是说,列表可能是那个或那个。我如何在 AssertJ 中表达这一点?该anyOf
函数(当然,any不是any ,但这将是第二个问题)需要一个Condition
; 我自己已经实现了,但感觉好像这应该是一个常见的情况。
android - Android AssertJ 1.0.0 与 Android gradle 1.1.1
这是我build.gradle
有冲突的一部分:
我在日志中看到的问题:
显然,它从类路径中删除了冲突的依赖项。我不确定它是插件gradle
还是android gradle
插件。
我尝试了下一个:
但是我仍然有编译错误,所以排除了依赖。
我尝试了下一个:
但看起来它不起作用,因为它在第一次冲突时没有失败,而且我仍然有编译错误。
你会有什么建议?
更新删除依赖项是什么意思-我看到很多assertj
未找到的编译错误
java - 您可以向 AssertJ assertThat 添加自定义消息吗?
我们有一个测试套件,主要使用带有 Hamcrest 匹配器的 JUnit 断言。我们的一个团队开始尝试AssertJ,并以其语法、灵活性和声明性给人们留下了深刻的印象。JUnit 提供了一个我在 AssertJ 中找不到的功能:添加自定义断言失败消息。
我们经常比较那些不是为了人类可读性而制作的对象,它们会有看似随机的 Id 或 UUID,并且不可能通过它们包含的数据来判断它们应该是什么。对于我们的代码库来说,这是一个不可避免的情况,遗憾的是,它实现的部分目的是在其他服务之间映射数据,而不必了解它是什么。
在 JUnit 中,该方法在param之前assertThat
提供了一个带有String reason
参数的版本。Matcher<T>
这使得添加一个简短的调试字符串可以轻松解决问题,例如比较对人类的意义。
另一方面,AssertJ 提供了许多不同的泛型static assertThat
方法,它们返回某种形式的接口 Assert或其众多实现类之一。此接口不提供设置自定义消息以包含在故障中的标准方法。
有没有办法从 AssertJ API 或其扩展之一获得此功能,而不必为我们想要添加消息的每个断言类型创建自定义断言类?
assertj - 如何从 AbstractAssert 覆盖泛型 isEqualTo
在其接口中具有泛型参数的方法:
Object
在其抽象类中被参数覆盖:
如何isEqualTo()
用 的泛型参数A
覆盖Assert<S, A>
,如
由于类型擦除而失败:
名称冲突:MyAssert 中的 isEqualTo(MyClass) 覆盖了一个擦除方法与另一个方法相同的方法,但都没有覆盖另一个
第一种方法:AbstractAssert 中的 isEqualTo(Object)
第二种方法:Assert 中的 isEqualTo(A#2),
其中 A#1、A#2 是类型变量:
A#1 扩展类 AbstractAssert 中声明的
对象 A#2 扩展接口中声明的对象断言
还有其他方法吗?
assertJ
用 Object 遮蔽泛型参数有什么好处?