Интеграция 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)? Спасибо


person Prrk47002    schedule 08.08.2017    source источник


Ответы (1)


Невозможно напрямую расширить AssertJ, как вы предлагаете, это будет означать изменение основного API AssertJ.

Один из вариантов - обернуть утверждения assertj лямбда-выражением, чтобы отловить ошибку утверждения (если есть), передать ее в отчеты о степени, чтобы зафиксировать сообщение об ошибке (не забудьте повторно выбросить ошибку, чтобы тест не прошел).

person Joel Costigliola    schedule 08.08.2017