TetsNG SoftAssert с использованием Hamcrest - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу использовать совпадение Hamcrest в тесте TestNG и специально с мягким утверждением. Как я могу это сделать? Я знаю, что могу использовать утверждения Хамкреста внутри теста, например:

assertThat(actual, containsInAnyOrder(expected));

Но я не могу понять, как я могу использовать метод мягкого подтверждения TestNG, как этот:

SoftAssert softAssert = new SoftAssert();

вместе со спаренным молотком Hamcrest.

Потому что я не могу вызвать assertThat Hamcrest на TestNG softAssert, как softAssert.assertThat(...)

Итак, как правильно использовать устройство сравнения Hamcrest вместе с TestNG?

1 Ответ

0 голосов
/ 03 сентября 2018

Насколько я знаю, вы не можете напрямую смешать SoftAssert из TestNG с утверждениями сопоставителя подколенного сухожилия.

Но вы можете использовать org.assertj.core.api.SoftAssertions в библиотеке совпадений Hamcrest для попыток сделать мягкие утверждения.

javadocs для SoftAssertions имеет несколько образцов.

Для полноты картины я включил здесь фрагмент кода из javadocs.

 @Test
 public void host_dinner_party_where_nobody_dies() {
   Mansion mansion = new Mansion();
   mansion.hostPotentiallyMurderousDinnerParty();
   SoftAssertions softly = new SoftAssertions();
   softly.assertThat(mansion.guests()).as("Living Guests").isEqualTo(7);
   softly.assertThat(mansion.kitchen()).as("Kitchen").isEqualTo("clean");
   softly.assertThat(mansion.library()).as("Library").isEqualTo("clean");
   softly.assertThat(mansion.revolverAmmo()).as("Revolver Ammo").isEqualTo(6);
   softly.assertThat(mansion.candlestick()).as("Candlestick").isEqualTo("pristine");
   softly.assertThat(mansion.colonel()).as("Colonel").isEqualTo("well kempt");
   softly.assertThat(mansion.professor()).as("Professor").isEqualTo("well kempt");
   softly.assertAll();
 }

Если вы посмотрите на кодовую базу SoftAssertions , вы заметите, что в комментариях говорится, что она вдохновлена ​​ блогом Седрика о мягких утверждениях.

...