问题标签 [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 - 如何使用assertJ递归地比较忽略给定字段?
AssertJ
有isEqualToIgnoringGivenFields
和isEqualToComparingFieldByFieldRecursively
。
但是,我无法通过忽略某些字段来递归地比较两个对象。根据这个讨论,它必须在开发中。
如何仍然让我的断言返回值进行递归比较但忽略某些字段。是否可以在任何其他库中使用,或者我可以以某种方式使用它AssertJ
吗?
java-8 - 方法引用什么时候起作用?
方法引用不适用于非静态方法 AFAIK。我尝试通过以下方式使用它们
这导致了链接中看到的编译错误。
问题
在使用AssertJ
库时,我使用了类似的东西,
where Feed
is a noun and getText
is a getter method and not static,但它工作正常,没有编译错误或任何让我困惑的错误。
我是否遗漏了有关方法引用如何工作的信息?
java - AssertJ 的 `usingComparatorForFields` 是如何工作的?
作为解决该问题的方法,我尝试为我不希望比较器比较的字段装配比较器并使其返回 0。
但是,我仍然得到这个例外。
作为旁注 - 我不想比较 startDate 因为它使用java.util.Date
比较毫秒的旧版检索当前日期。
它是如何usingComparatorForFields
工作的。我什至尝试使用isEqualToComparingFieldByField
而不是isEqualToComparingFieldByFieldRecursively
错误仍然存在(在相同的情况下。对于需要递归比较的情况,此错误仍然存在。)
assertj - Assertj 提取和包含不匹配
我做了一个简单的测试:
我得到一个奇怪的结果:
任何人都可以帮助我吗?
java - Double.NaN isCloseTo double 值意外返回 true
AssertJtrue
在检查双精度值是否接近 NaN 时返回。这是一个错误吗?
使用的版本是3.6.2。
java - Assertj 比较提取哪些是字符串数组
在我的情况下,我需要从两个不同的系统请求一组名称并验证它们是否相等(不管顺序)。很可能我不明白,但这段代码工作正常:
,但它看起来真的很难看,我想要这样的东西:
我尝试了很多函数,比如isSubsetOf()
or containsOnly()
,我也尝试在这里和那里进行转换,但总是会遇到一些异常/错误。
我如何比较它们?
spring-mvc - AssertJ Swagger 测试卡在执行中
我正在尝试在 REST API 开发(Spring Boot Web 应用程序)中采用Swagger 。基于 swagger 规范的 API 记录过程和代码生成效果很好,现在我遇到了使用assertj-swagger和SpringFox库编写集成测试的问题。
关于这些库的几句话。Springfox 通过在运行时检查应用程序一次以根据 Spring 配置、类结构和各种编译时 Java 注释来推断 API 语义。swagger-assertj 测试库应该将合约优先的 Swagger YAML 文件与 SpringFox 生成的代码优先的 Swagger JSON 进行比较。对于消费者驱动的合约测试,如果 assertj-swagger 发现实现中缺少消费者规范所需的资源、方法、模型或属性,则测试失败。
我的测试看起来像(测试代码取自GitHub示例):
问题是该测试执行了很长时间并且似乎卡住了,因为在此行之后我没有看到任何日志输出:
- 我确定 SpringFox 正在工作,因为我
GET http://localhost:8080/v2/api-docs
在浏览器中打开后看到了 JSON。 - 运行测试时我没有编译时或构建时错误,导致 Maven 解析依赖项并且 Spring Boot 上下文已成功初始化。
有没有人有使用 assertj-swagger 的经验,因为看起来我做错了什么?
java - 使用 AssertJ 进行测试时从实际对象和预期对象中提取字段
我想检查一个列表是否包含另一个列表的子列表。这是我目前如何做的一个虚拟示例:
equals
是否可以在不覆盖类方法的情况下以更紧凑的方式实现相同的结果User
?我正在寻找类似的东西:
或者,更好的是:
java - AssertJ:softAssert 上的 NoSuchMethodException
我一直在尝试使用 assertJ 作为我团队项目中使用的当前断言库 hamcrest 的替代方案。到目前为止,我有以下课程:
动物.java
我为它创建了以下自定义断言:
AnimalAssert.java
根据 AssertJ 功能,我为上述内容提供了一个入口点,并且我正在尝试添加软断言功能:
CustomSoftAssertions.java
当我运行以下测试时:
断言JDemo.java
我得到以下堆栈跟踪:
我是在 assertJ 库上做错了什么,还是我违反了一些我没有发现的特定于 java 的东西?我正在使用带有 assertJ 3.8.0 的 Java 8
编辑:我已经根据第一个答案(cglib 需要一个)使用无 arg 构造函数更新了 Animal 类,但抛出了相同的异常
java - 如何对来自 AssertJ 的异常消息进行分组以获得更好的报告?
起初,我们将 TestNG Asserts 用于我们所有的自动化测试验证,这可能会引发预定义的错误消息。魅力报告根据错误消息对故障进行分组,使其非常易于阅读和理解。
最近我们开始使用 AssertJ 来执行我们的测试验证。这是一个很棒的框架,但它会抛出很长的异常消息(有更多信息)。问题是现在我的魅力报告无法对所有这些失败进行分组,因此单独报告它们使得阅读变得非常困难。
我知道我们可以覆盖 AssetJ 错误消息,但我不知道如何为我的自定义类对象字段验证执行此操作。请指导我。谢谢你。
更简单地说,我当前的异常消息如下
UnrecognizedPropertyException: Unrecognized field "type" (class com.data.files.Files), not marked as ignorable (4 known properties: "name", "hash", "id", "versionId"])
at [Source: {"id":"2yI94ibmVPI","name":"File01.html","versionId":"xzmnggrX6iQ","hash":"39252a3c0577a4d28da144b414871264","type":"FILE"}; line: 1, column: 1190] (through reference chain: com.data.files.Files["type"])
但我需要的只是下面的消息(剩余信息可以是堆栈跟踪的一部分)
UnrecognizedPropertyException: Unrecognized field "type" (class com.data.files.Files)
实现这一目标的最简单方法是什么?