Среда JUnit содержит 2 Assert
класса (очевидно, в разных пакетах), и методы каждого из них кажутся очень похожими. Кто-нибудь может объяснить, почему это так?
Классы я имею в виду , являются: junit.framework.Assert
и org.junit.Assert
.
Среда JUnit содержит 2 Assert
класса (очевидно, в разных пакетах), и методы каждого из них кажутся очень похожими. Кто-нибудь может объяснить, почему это так?
Классы я имею в виду , являются: junit.framework.Assert
и org.junit.Assert
.
junit.framework.*
из выпадающего списка статический импорт вEditor->General->Auto Import->Exclude from Import and Completion
.Ответы:
Старый метод (из JUnit 3) заключался в маркировке тестовых классов путем расширения
junit.framework.TestCase
. Это унаследовалоjunit.framework.Assert
себя, и ваш тестовый класс получил возможность вызывать методы assert таким образом.Начиная с версии 4 JUnit, платформа использует
Annotations
для маркировки тестов. Так что вам больше не нужно расширятьсяTestCase
. Но это означает, что методы assert недоступны. Но вы можете сделать статический импорт новогоAssert
класса. Вот почему все методы assert в новом классе являются статическими методами. Таким образом, вы можете импортировать это так:После этого статического импорта вы можете использовать эти методы без префикса.
При редизайне они также перешли на новый пакет,
org.junit
который лучше следует обычным правилам именования пакетов.источник
JUnit 3.X:
junit.framework.Assert
JUnit 4.X:
org.junit.Assert
Предпочитайте самый новый, особенно при запуске JDK5 и выше с поддержкой аннотаций.
источник
На самом деле есть функциональное изменение:
org.junit.Assert
будет жаловаться, если вы используете два аргументаassertEquals()
сfloat
илиdouble
, в то время какjunit.framework.Assert
автоматически отключит его.источник
Я считаю , что они рефакторинг от
junit.framework
кorg.junit
иjunit.framework.Assert
поддерживаются для обратной совместимости.источник
Я сделал грубое сравнение исходного кода, и никаких серьезных изменений нет. Было добавлено много комментариев
org.junit.Assert
и проведен рефакторинг. Единственное изменение - это сравнение сArrays
. Есть некоторые очистки кода, но нет (imho) никаких функциональных изменений .источник
В Android Studio (и в IntelliJ тоже) вы можете глобально исключить
junit.framework
из предложения автоматического импорта.Вы можете установить область между
IDE
илиProject
. Если у вас нет проектов, использующих JUnit 3, вы можете спокойно оставаться в области IDE.Установка положения:
источник