atesting.ru Блог Как использовать Soft Assert в TestNG | Учебное пособие по TestNG

Как использовать Soft Assert в TestNG | Учебное пособие по TestNG

Прежде чем узнать, что такое Soft Assert, сначала давайте посмотрим, что такое Assert, в чем недостатки использования Assert и почему мы переходим на Soft Assert.

Утверждения используются для выполнения проверок в тесте скрипты.

Есть два типа утверждения:

  1. Жесткое утверждение
  2. Мягкое утверждение

Когда assert терпит неудачу, тестовый скрипт останавливает выполнение, если не обрабатывается в какой-либо форме. Мы называем общее утверждение Hard Assert

Hard Assert — Hard Assert немедленно генерирует AssertException , когда оператор assert терпит неудачу и набор тестов продолжается со следующим @Test

Недостаток Hard Assert — он отмечает метод как сбой, если условие assert не выполнено, а остальные операторы внутри метода будут прерваны.

Чтобы преодолеть это, нам нужно использовать Soft Assert. Давайте посмотрим, что такое Soft Assert.

Soft Assert — Soft Assert собирает ошибки во время @Test . Soft Assert не генерирует исключение при сбое утверждения и продолжит выполнение следующего шага после утверждения assert.

Если есть какое-либо исключение, и вы хотите его выбросить, вам нужно использовать assertAll () в качестве последнего оператора в @Test, и снова перейдите к следующему @Test как есть.

Нам нужно создать объект для использования Мягкое утверждение, которое не требуется в жестком утверждении.

Посмотрите видео ниже, чтобы увидеть «Мягкое утверждение в TestNG»

Наберитесь терпения. Видео загрузится через некоторое время.

Если вам понравилось это видео, подпишитесь на наш канал YouTube, чтобы увидеть больше видеоуроков.

Давайте посмотрим на практический пример:

Здесь я взял два метода, а именно softAssert () и hardAssert () .

В softAssert () я использовал класс SoftAssert и намеренно передал значение false в методе assertTrue (), чтобы он не прошел

В методе hardAssert () , Я просто использовал Assert и намеренно передал значение параметра false в метод assertTrue (), чтобы он не сработал

Java

1234567891011121314151617181920212223 программный пакетTestingMaterial; import org.testng.Assert; import org.testng.annotations.Test; import org.testng.asserts.SoftAssert; открытый класс SoftAssertion {@Test public void softAssert () {SoftAssert softAssertion = new SoftAssert (); System.out.println (& # 34; Метод softAssert был запущен & # 34;); softAssertion.assertTrue (ложь); System.out.println (& # 34; Метод softAssert был выполнен & # 34;); } @Test public void hardAssert () {System.out.println (& # 34; Метод hardAssert был запущен & # 34;); Assert.assertTrue (ложь); System.out.println (& # 34; Выполнен метод hardAssert & # 34;); }}

Выполните приведенный выше сценарий и просмотрите вывод консоли. Вы могли увидеть только один сбой.

Вывод в консоль:

1234567891011 [TestNG] Выполняется: C: Users Administrator AppData Local Temp testng-eclipse — 2097831536 testng-customsuite.xml Был запущен метод hardAssert запущен метод softAssert Был выполнен метод softAssert ========== ===================================== Набор по умолчанию Всего тестов: 2, отказов: 1, пропусков: 0 ===============================================

 Как использовать мягкое утверждение в TestNG | Учебное пособие по TestNG

Сценарий ниже такой же, как и первый, но только добавлен метод assertAll () в конец первого метода (т. е. softAssert () ).

Примечание. Если вы забыли вызвать assertAll () в конце теста тест будет проходить , даже если какие-либо объекты assert вызвали исключения, как показано в приведенном выше примере. Так что не забудьте добавить assertAll ()

Java

123456789101112131415161718192021222324 программный пакетTestingMaterial; import org.testng.Assert; import org.testng.annotations.Test; import org.testng.asserts.SoftAssert; открытый класс SoftAssertion {@Test public void softAssert () {SoftAssert softAssertion = new SoftAssert (); System.out.println (& # 34; Метод softAssert был запущен & # 34;); softAssertion.assertTrue (ложь); System.out.println (& # 34; Метод softAssert был выполнен & # 34;); softAssertion.assertAll (); } @Test public void hardAssert () {System.out.println (& # 34; Метод hardAssert был запущен & # 34;); Assert.assertTrue (ложь); System.out.println (& # 34; Выполнен метод hardAssert & # 34;); }}

Выполните приведенный выше сценарий и просмотрите вывод консоли. Здесь есть две неудачи. Вторая ошибка связана с методом assertAll ()

Вывод в консоль:

1234567891011 [TestNG] Выполняется: C: Users Administrator AppData Local Temp testng-eclipse — 147736931 testng-customsuite.xml Был запущен метод hardAssert Был запущен метод softAssert Был запущен метод softAssert =============================================== Набор по умолчанию Всего тестов запуск: 2, отказы: 2, пропуски: 0 ======================================= ========

 Как использовать мягкое утверждение в TestNG | TestNG Tutorial

Вы можете найти полное руководство TestNG здесь.

TestNG Complete Tutorial

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

TAG: qa