Как сделать множественную проверку(Soft Assertion) в тесте с использованием jUnit 4

intellij
assert
webdriver
java
junit
selenium
Теги: #<Tag:0x00007fedb8204588> #<Tag:0x00007fedb8204448> #<Tag:0x00007fedb8204308> #<Tag:0x00007fedb82041a0> #<Tag:0x00007fedb8204038> #<Tag:0x00007fedb8203ef8>

(NewQALearner) #1

Подскажите, пожалуйста, есть ли что-то подобное в jUnit, как softAssert в testNG?
Нужно, чтобы тест не вылетал, когда делаю первую проверку. Искала разную информацию, но конкретного ничего не нашла. Столкнулась с AssertJ, но ничего для решения своей проблемы не смогла найти. Всем спасибо!


(Александр) #2

Привет!
Можно попробовать использовать ErrorCollector:
http://junit.org/junit4/javadoc/4.12/org/junit/rules/ErrorCollector.html

AssertJ содержит в себе SoftAssertions:
http://joel-costigliola.github.io/assertj/assertj-core-features-highlight.html#soft-assertions


(NewQALearner) #3

Спасибо, буду пробовать.


(NewQALearner) #4

Еще раз спасибо. ErrorCollector помог, а вот с SoftAssertions не подружилась. Идея не видит їх (Can not resolve symbol SoftAssertions), хоть dependencies прописала (testCompile ‘org.assertj:assertj-core:3.6.2’). Может что-то еще надо добавить? Спасибо.


(Юрий Аксютин) #5

универсальное решение:
оборачиваете любой ассерт(любое условное выражение - если вы хотите делать скриншот на каждую ошибку) в try catch, и собираете ошибки не вылетая из программы
Подозреваю что ErrorCollector так и делает)


(NewQALearner) #6

Спасибо. Да, такой принцип в ErrorCollector.


(Dmitrii Tuchs) #7

JUnit 5 предлагает метод Assertions.assertAll именно для такой цели - выполнить несколько assert, и увидеть в отчете результаты всех, даже если упал первый. Переходите на версию 5:slightly_smiling_face: