问题标签 [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.

0 投票
2 回答
30197 浏览

java - 如何使用assertJ递归地比较忽略给定字段?

AssertJisEqualToIgnoringGivenFieldsisEqualToComparingFieldByFieldRecursively

但是,我无法通过忽略某些字段来递归地比较两个对象。根据这个讨论,它必须在开发中。

如何仍然让我的断言返回值进行递归比较但忽略某些字段。是否可以在任何其他库中使用,或者我可以以某种方式使用它AssertJ吗?

0 投票
1 回答
147 浏览

java-8 - 方法引用什么时候起作用?

方法引用不适用于非静态方法 AFAIK。我尝试通过以下方式使用它们

这导致了链接中看到的编译错误。

错误图片

问题
在使用AssertJ库时,我使用了类似的东西,

where Feedis a noun and getTextis a getter method and not static,但它工作正常,没有编译错误或任何让我困惑的错误。

证明不是静态方法。

我是否遗漏了有关方法引用如何工作的信息?

0 投票
1 回答
1383 浏览

java - AssertJ 的 `usingComparatorForFields` 是如何工作的?

如何使用 assertJ 递归地比较忽略给定字段有关?

作为解决该问题的方法,我尝试为我不希望比较器比较的字段装配比较器并使其返回 0。

但是,我仍然得到这个例外。

作为旁注 - 我不想比较 startDate 因为它使用java.util.Date比较毫秒的旧版检索当前日期。

它是如何usingComparatorForFields工作的。我什至尝试使用isEqualToComparingFieldByField而不是isEqualToComparingFieldByFieldRecursively错误仍然存​​在(在相同的情况下。对于需要递归比较的情况,此错误仍然存​​在。)

0 投票
1 回答
591 浏览

assertj - Assertj 提取和包含不匹配

我做了一个简单的测试:

我得到一个奇怪的结果:

任何人都可以帮助我吗?

0 投票
1 回答
139 浏览

java - Double.NaN isCloseTo double 值意外返回 true

AssertJtrue在检查双精度值是否接近 NaN 时返回。这是一个错误吗?

使用的版本是3.6.2

0 投票
1 回答
889 浏览

java - Assertj 比较提取哪些是字符串数组

在我的情况下,我需要从两个不同的系统请求一组名称并验证它们是否相等(不管顺序)。很可能我不明白,但这段代码工作正常:

,但它看起来真的很难看,我想要这样的东西:

我尝试了很多函数,比如isSubsetOf()or containsOnly(),我也尝试在这里和那里进行转换,但总是会遇到一些异常/错误。

我如何比较它们?

0 投票
1 回答
476 浏览

spring-mvc - AssertJ Swagger 测试卡在执行中

我正在尝试在 REST API 开发(Spring Boot Web 应用程序)中采用Swagger 。基于 swagger 规范的 API 记录过程和代码生成效果很好,现在我遇到了使用assertj-swaggerSpringFox库编写集成测试的问题。

关于这些库的几句话。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 的经验,因为看起来我做错了什么?

0 投票
2 回答
1206 浏览

java - 使用 AssertJ 进行测试时从实际对象和预期对象中提取字段

我想检查一个列表是否包含另一个列表的子列表。这是我目前如何做的一个虚拟示例:

equals是否可以在不覆盖类方法的情况下以更紧凑的方式实现相同的结果User?我正在寻找类似的东西:

或者,更好的是:

0 投票
1 回答
289 浏览

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 类,但抛出了相同的异常

0 投票
2 回答
397 浏览

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)

实现这一目标的最简单方法是什么?