Прежде чем узнать, что такое Soft Assert, сначала давайте посмотрим, что такое Assert, в чем недостаток Assert и почему мы переходим на Soft Assert.
Утверждения используются для выполнения проверок в тесте. сценариев.
Существует два типа Assert:
Жесткое утверждение
Мягкое утверждение
Когда утверждение терпит неудачу, тестовый сценарий прекращает выполнение, если не обрабатывается в какой-либо форме. . Мы называем общее утверждение как Hard Assert
Hard Assert – Hard Assert выдает AssertException.немедленно, когда оператор утверждения терпит неудачу, и набор тестов продолжается со следующего @Test
Недостаток Hard Assert: метод помечается как ошибочный, если условие утверждения не выполняется, а остальные операторы внутри метод будет прерван.
Чтобы решить эту проблему, нам нужно использовать Soft Assert. Давайте посмотрим, что такое Soft Assert.
Soft Assert – Soft Assert собирает ошибки во время @Test.. Мягкое утверждение не генерирует исключение, когда утверждение терпит неудачу, и переходит к следующему шагу после утверждения утверждения.
Если есть какое-либо исключение, и вы хотите его создать, вам нужно использовать assertAll() в качестве последнего оператора в @Test, и набор тестов снова переходит к следующему @Test как есть.
Нам нужно создать объект для использования Soft Assert, который не требуется в Hard Assert.
Посмотрите видео ниже, чтобы увидеть «Soft Assert в TestNG»
Наберитесь терпения . Видео загрузится через некоторое время.
Если вам понравилось это видео, подпишитесь на наш канал YouTube для получения дополнительных видеоуроков.
Давайте рассмотрим практический пример:
Здесь я использовал два метода. а именно softAssert() и hardAssert().
В методе softAssert() я использовал класс SoftAssert и намеренно передал значение false в методе assertTrue(), чтобы он не работал
В методе hardAssert() я просто использовал Assert и намеренно передал значение параметра false в метод assertTrue(), чтобы сделать его неработоспособнымJava
1234567891011121314151617181920212223
пакет программного обеспечения TestingMaterial; импортировать org.testng.Assert; импортировать org.testng.annotations.Test; импортировать org.testng.asserts.SoftAssert; public class SoftAssertion { @Testpublic void softAssert(){SoftAssert softAssertion= new SoftAssert();System.out.println(“Метод softAssert был запущен”);softAssertion.assertTrue(false);System.out.println(“Метод softAssert был Выполнено”);}@Testpublic void hardAssert(){System.out.println(“Метод hardAssert был запущен”); Assert.assertTrue(false);System.out.println(“Метод hardAssert был выполнен”);}}< /table>
Выполните указанный выше скрипт и просмотрите вывод консоли. Вы могли увидеть только один сбой.
Вывод в консоль:
1234567891011
[TestNG] Выполняется: C:UsersAdministratorAppDataLocalTemptestng-eclipse–2097831536testng-customsuite.xml Был запущен метод hardAssert Метод softAssert Был запущен метод softAssert Был выполнен метод softAssert ========== ===================================== Комплект по умолчанию Всего выполнено тестов: 2, сбои: 1, пропуски: 0==============================================
< /p>
Сценарий ниже аналогичен первому, но с добавлением метода assertAll() в конец первого метода (т. е. softAssert()).
Примечание. Если если вы забудете вызвать assertAll() в конце теста, тест пройдёт, даже если какие-либо объекты утверждения генерируют исключения, как показано в приведенном выше примере. Так что не забудьте добавить assertAll()Java
123456789101112131415161718192021222324
пакет программного обеспечения TestingMaterial; импортировать org.testng.Assert; импортировать org.testng.annotations.Test; импортировать org.testng.asserts.SoftAssert; public class SoftAssertion { @Testpublic void softAssert(){SoftAssert softAssertion= new SoftAssert();System.out.println(“Метод softAssert был запущен”);softAssertion.assertTrue(false);System.out.println(“Метод softAssert был Выполнено”); softAssertion.assertAll();}@Testpublic void hardAssert(){System.out.println(“Метод hardAssert был запущен”); Assert.assertTrue(false);System.out.println(“Метод hardAssert был выполнен “);}}таблица>
Выполните приведенный выше скрипт и посмотрите вывод консоли. Здесь две неудачи. Второй сбой связан с методом assertAll()
Консольный вывод:
1234567891011
[TestNG] Выполняется : C:UsersAdministratorAppDataLocalTemptestng-eclipse–147736931testng-customsuite.xml Был запущен метод hardAssert Был запущен метод softAssert Был запущен метод softAssert =============== ================================= Комплект по умолчанию Всего выполнено тестов: 2, сбоев: 2, пропусков: 0=== ===========================================
Вы можете найти полное руководство по TestNG здесь.
Полное руководство по TestNG
Если вы не являетесь постоянным читателем моего блога, я настоятельно рекомендую вам чтобы подписаться на бесплатную рассылку новостей по электронной почте, используя ссылку ниже.