2017-08-08 60 views
0

下面是一个解释我想要做什么的示例方法。集成AssertJ和ExtentReport

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"); 
} 

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

回答

0

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

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