AssertJ SoftAssertions:如何在收集到 AssertionError 后执行自定义代码?

问题描述

问题:我想将 TestNG 断言从 AssertJ 更改为 AssertJ 和 SoftAssertions,但我不知道我究竟需要从 SoftAssertions 覆盖什么才能在 AssertionError后执行自定义代码集。具体来说,我想为每个收集的错误获取屏幕截图。我使用 Selenium 进行自动化,需要添加屏幕截图以进行报告。 我试图覆盖 fail 中的每个 AbstractSoftAssertions 方法,但没有帮助。

实际:我只在 @After 方法中获得了屏幕截图。

预期:我需要获取每个软断言错误的屏幕截图。

当前设置是使用 Java、TestNG、Selenium 和 Allure 报告。

解决方法

有两种选择:

这两种方式都允许您提供自己的逻辑以在每个断言错误时执行。

您可以在 AssertJ documentation 中找到有关这两种解决方案的示例。