首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Testng assertj报告并继续

Testng assertj报告并继续
EN

Stack Overflow用户
提问于 2016-06-02 14:30:09
回答 2查看 552关注 0票数 2

我正在使用AssertJ测试网页,使用fluentlenium和extent来报告结果。

我在提问之前问过了,但忘了提到AssertJ的用法。

提供的答案是扩展soft assert,并且它具有onAssertFailure功能。

对于AssertJ软断言,有没有类似的东西?或者有其他解决方案可以绕过它?

EN

回答 2

Stack Overflow用户

发布于 2016-06-03 12:58:33

在下一个AssertJ版本(2.5.0)中,您将可以访问所有软断言错误(请参阅此commit)。

希望能有所帮助

票数 2
EN

Stack Overflow用户

发布于 2016-06-02 15:21:29

在assertJ的未来版本中会添加一个方法wasSuccess() (可以在git历史记录中看到),但在当前版本中还不可用。

添加此方法后,您可以执行以下操作:

代码语言:javascript
复制
public class AssertjSoftAssert extends SoftAssertions {

    private void checkFailure() {

        if(!wasSuccess()) {

            onFailure();
        }
    }

    private void onFailure() {

        //doFailureStuff
    }

    @Override
    public BigDecimalAssert assertThat(BigDecimal actual) {

        BigDecimalAssert assertion = super.assertThat(actual);
        checkFailure();
        return assertion;
    }

    @Override
    public BooleanAssert assertThat(boolean actual) {

        BooleanAssert assertion = super.assertThat(actual);
        checkFailure();
        return assertion;
    }
}

但是,请注意,您必须覆盖SoftAssertions类中的每个断言方法,就像我在这里通过示例向您展示的那样。而且,如果在SoftAssertions类中添加了新的断言,您也必须覆盖这些断言。这是我现在能找到的最好的解决方案,但在assertj更新之前也不会起作用。

EDIT:实际上我不确定这是否会起作用,因为我不确定wasSuccess()是否会在每次成功的软断言之后或仅在抛出assertAll()之后返回true,但我不能明显地测试这一点,因为这个功能还没有发布。

奖励:The commit that added wasSuccess()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37584266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档