如何解决AssertJ SoftAssertions:如何在收集到 AssertionError 后执行自定义代码?
问题:我想将 TestNG 断言从 AssertJ 更改为 AssertJ 和 SoftAssertions,但我不知道我究竟需要从 SoftAssertions 覆盖什么才能在 AssertionError
之后执行自定义代码集。具体来说,我想为每个收集的错误获取屏幕截图。我使用 Selenium 进行自动化,需要添加屏幕截图以进行报告。
我试图覆盖 fail
中的每个 AbstractSoftAssertions
方法,但没有帮助。
实际:我只在 @After
方法中获得了屏幕截图。
当前设置是使用 Java、TestNG、Selenium 和 Allure 报告。
解决方法
有两种选择:
- 在您的
SoftAssertions
实例上调用setAfterAssertionErrorCollected
,提供您自己的AfterAssertionErrorCollected
实现(可以是 lambda)。 - 扩展
AbstractSoftAssertions
并覆盖onAssertionErrorCollected
。
这两种方式都允许您提供自己的逻辑以在每个断言错误时执行。
您可以在 AssertJ documentation 中找到有关这两种解决方案的示例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。