6 ответов:
в JUnit4 исключение (фактически ошибка), вызванное утверждением JUnit, совпадает с ошибкой, вызванной java
assertключевое слово (AssertionError), так что это точно так же, какassertTrueи кроме трассировки стека вы не могли сказать разницу.это, как говорится, утверждает, что должен работать со специальным флагом в JVM, в результате чего многие тесты, похоже, проходят только потому, что кто - то забыл настроить систему с этим флагом, когда тесты JUnit были запущены- нет хороший.
В общем, из-за этого я бы сказал, что с помощью JUnit
assertTrueЭто лучшая практика, потому что она гарантирует, что тест выполняется, обеспечивает согласованность (вы иногда используетеassertThatили другие утверждения, которые не являются ключевым словом java), и если поведение JUnit утверждает, что должно измениться в будущем (например, подключение к какому-то фильтру или другой будущей функции JUnit), ваш код сможет использовать это.реальная цель ключевого слова assert в java чтобы иметь возможность отключить его без штрафа во время выполнения. Это не относится к модульным тестам.
Я предпочитаю утверждения JUnit, поскольку они предлагают более богатый API, чем встроенный
assertзаявление и, что еще важнее, не должны быть явно включены в отличие отassert, который требует-eaаргумент JVM.
когда тест терпит неудачу, вы получаете больше информации.
assertEquals(1, 2);результатыjava.lang.AssertionError: expected:<1> but was:<2>vs
assert(1 == 2);результатыjava.lang.AssertionErrorвы можете получить еще больше информации, если вы добавите аргумент сообщение
assertEquals
Я бы сказал, что используйте JUnit asserts в тестовых случаях и используйте утверждение java в коде. Другими словами, реальный код никогда не должен иметь зависимостей JUnit, как очевидно, и если это тест, он должен использовать его вариации JUnit, а не assert.
Я бы сказал, что если вы используете JUnit, вы должны использовать утверждения JUnit.
assertTrue()в основном то же самое, что иassert, иначе зачем вообще использовать JUnit?
Это может не применяться, если вы используете исключительно блестящие и новые вещи, но assert не был введен в Java до 1.4 SE. Поэтому, если вы должны работать в среде со старой технологией, вы можете склониться к JUnit по соображениям совместимости.
Comments