Рамка 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.