我正在使用AssertJ测试网页,使用fluentlenium和extent来报告结果。
我在提问之前问过了,但忘了提到AssertJ的用法。
提供的答案是扩展soft assert,并且它具有onAssertFailure功能。
对于AssertJ软断言,有没有类似的东西?或者有其他解决方案可以绕过它?
发布于 2016-06-03 12:58:33
在下一个AssertJ版本(2.5.0)中,您将可以访问所有软断言错误(请参阅此commit)。
希望能有所帮助
发布于 2016-06-02 15:21:29
在assertJ的未来版本中会添加一个方法wasSuccess() (可以在git历史记录中看到),但在当前版本中还不可用。
添加此方法后,您可以执行以下操作:
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,但我不能明显地测试这一点,因为这个功能还没有发布。
https://stackoverflow.com/questions/37584266
复制相似问题