Рамка 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
себе і ваш тестовий клас отримав можливість викликати методи затвердження таким чином.
Починаючи з версії 4 JUnit, фреймворк використовує Annotations
для тестів на маркування. Тож вам більше не потрібно продовжувати TestCase
. Але це означає, що методи затвердження недоступні. Але ви можете зробити статичний імпорт нового 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
.