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