В JUnit4 исключение (на самом деле ошибка), генерируемое утверждением JUnit, совпадает с ошибкой, генерируемой ключевым словом java assert
(AssertionError), поэтому оно точно такое же, как assertTrue
и отличается от трассировки стека Вы не могли бы отличить.
При этом утверждения должны запускаться со специальным флагом в JVM, в результате чего многие тесты кажутся проходящими просто потому, что кто-то забыл настроить систему с этим флагом при запуске тестов JUnit - не хорошо.
В целом, из-за этого, я бы сказал, что использование JUnit assertTrue
является лучшей практикой, поскольку гарантирует выполнение теста, обеспечивает согласованность (иногда вы используете assertThat
или другие утверждения, которые не являются Java). ключевое слово), и если поведение утверждений JUnit изменится в будущем (например, подключение к какому-либо фильтру или другой будущей функции JUnit), ваш код сможет использовать это.
Настоящая цель ключевого слова assert в java - его отключение без штрафа за время выполнения. Это не относится к юнит-тестам.