集成AssertJ和ExtentReport

时间:2017-08-08 20:13:56

标签: assertj

这是一个解释我想做什么的示例方法。

public void myMethod(Method m){
    report = new ExtentReports("filename");     
    test = report.startTest("testName");

   String actual = "sssssss";
   String expected = "xxxxxxxx";

    // what I can do with AssertJ id have a nice readable test
    assertThat(actual).isEqualTo(expected).withFailMessage("BOINK!");

    // what I can do with ExtentReports
    if (!actual.equals(expected)) test.log(LogStatus.FAIL, "BOINK");

    // what I want to extend assertJ to do
    assertThat(actual).isEqualTo(expected).extentLog(test, LogStatus.FAIL, "BOINK");
}

我的问题是如何使用另一个动作,.extentLog(args)方法扩展AssertJ? 谢谢

1 个答案:

答案 0 :(得分:1)

没有办法像你建议的那样直接扩展AssertJ,这意味着要修改AssertJ核心API。

一个选项是使用lambda包装assertj断言以捕获断言错误(如果有的话),将其传递到扩展报告以捕获错误消息(不要忘记重新抛出错误以进行失败的测试)