![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: нет Всего: 11 |
Кто сталкивался с JUnit тестами в IDEA? Как их там правильно писать, как запускать, ну и все такое...
|
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 3 Всего: 191 |
||||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: нет Всего: 11 |
Samotnik, ну хоты идеей пользуешься!
Вот например создали мы новый класс, который хотим потестить, где создавать класс, который будет запускать тесты, как его запускать, может какие-то еще тонкости есть? Пользовался ли плагином для JUnit под идею? |
|||
|
||||
| Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 3 Всего: 191 |
нет он не к чему вообще все очень просто (как я уже и говорил) начицца, при создании проекта в идее есть 3 умалчиваемых пакета Sources - тут нужно писать код Далее... Создаеш в этом пакете новый класс, наследуеш его от TestCase . и пишеш код, в котором вызываются методы, и подставляются туда значения. вот примерчик Это обычный java класс, в котором есть различные методы, которые нужно протестить
А вот сам тест
Т.е. суть : у тебя есть java класс в котороч методы чтото выполняют, ты пишеш класс, который наследуеш отт тесткейса и вем в нужные тебе методы подставляеш значения. Если тест прошел то идея напишет Test passed если же непрошел тест, то идея напишет Test Failed Запускать тесты в идее оч просто сам этот файлик обычным образом компилиш (Ctrl + Shift + F9) потом запускаеш его на выполнение (Ctrl + Shift + F10) Добавлено через 2 минуты и 14 секунд ах да, естественно жарку подключить нужно junit |
||||
|
|||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: нет Всего: 11 |
Samotnik, спасибо, только я чего-то не понял...
Это где такое?? Знаю что по умолчанию после создания нового проекта в идее есть две папки, src и out, именно папки, а не пакеты! В папку src ложится код, именно оттуда пляшет идея, считая src корневым пакетом. В папкe out есть еще две папки - production и test. В папке production - классы, в папке test - ничего нет Так что именно ты имеешь ввиду, или я тебя неправильно понял? Куда ложить тест-классы? |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 3 Всего: 191 |
garbuz, когда создался проект, нажми кнопочки Ctr + Alt + S - Projec Settings - Modules Справа вкладочку Sources Там создай папочку скажим "tests", выберии ее, и нажми Test Sources и IDA поймет, что в этом пакете будут лежать классы только с тестами
|
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: нет Всего: 11 |
Samotnik, все понял. Но по сути создается всего лишь новый пакет (если создавать в папке src), куда мы будем ложить наши тестовые классы. Это все я мог проделать и простым созданием нового пакета, присвоением ему имени tests, не используя при этом alt + ctrl + s, ведь при создании нового класса в этом пакете никакого импорта не происходит. В чем тогда вся фича? Или я не прав, или в этом есть что-то такое особенное?
Да, и по поводу Run - Edit configurations. Там можно как я понял и обычное приложение добавлять, или же добавить Junit, и там какая-то JUnit консолька будет. Ты чем пользуешься? |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 3 Всего: 191 |
ну там тоже можно сделать я же уже написал указываю идее, что в этой будут лежать тесты, подключаю жарку, пишу тесты, компилю их и запускаю, если failed - значит провалиося, если passed - значит все по фэншую ! никакаих стороних тулзов не использую . все вручную )) |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: нет Всего: 11 |
Samotnik, ясно. Еще раз сапсибо.
|
|||
|
||||
| Shurr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 24.10.2006 Репутация: нет Всего: 7 |
garbuz
Попробую немного упорядочить. Тесты лежат не в отдельном пакете, а в отдельной корневой папке. Например есть папка с проектом, а в ней - src, out, test. Папка src помечается как "Sources", test - как "Test sources". Внутри этой папки тесты разбиты по пакетам в соответствии с тестируемыми классами. Т.е. если класс Item лежит в пакете com.mybusiness.core, то его тест, класс ItemTest тоже лежит в пакете com.mybusiness.core. На файловой системе - ProjectRoot\src\com\mybusiness\core\Item.java и ProjectRoot\test\com\mybusiness\core\ItemTest.java соответственно (при условии что папка test лежит рядом с папкой src, как я описывал в предыдущем абзаце). Вообще папка test используется как source root для всего кода, который относится к тестам: это могут быть не только непосредственно unit-тесты, но и утилиты, стабы, моки и пр. В свою очередь код, идущий в продакшн не может ссылаться на тестовый код (т.е. классы из папки src не могут зависеть от классов из папки test). По запуску тестов посредством плагина JUnit я бы рекомендовал более короткий вариант, нежели ручное создание конфигурации (Run - Edit configurations - JUnit - Add new configuration): 1. Для запуска всех тестов пакета или класса: в дереве проекта в тестовой папке выбрать пакет или класс теста, правой кнопкой - "Run Tests in (имя пакета/класса)", или Ctrl+Shift+F10. 2. Для запуска одного или всех кейсов теста в открытом исходном файле правой кнопкой - "Run Tests in (имя пакета/класса)", или Ctrl+Shift+F10. Запустится кейс на котором был курсор, или все кейсы теста, если курсор был не на кейс-методе. При таком запуске тестов конфигурация создается автоматически, при желании ее можно сохранить для последующего использования (Run - Save "TestBlablabla" Configuration). Перед запуском тестов естественно необходимо сделать Make (Ctrl+F9). По созданию тестов я бы рекомендовал плагин JUnitGenerator. При минимальном количестве настроек (возможность редактировать шаблон теста + настройка путей) достаточно прост в использовании: в исходнике класса нажимаешь Alt+Ins - JUnit Test, после чего в папке с тестами создается класс-тест со сгенерированными заглушками методов. |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: нет Всего: 11 |
Shurr, мегаспасибо, буду курить!
ЗЫ. Кто-нить, плюсаните ребят за помощь |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 3 Всего: 191 |
Shurr, а я не тоже самое сказал ?
|
|||
|
||||
| Shurr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 24.10.2006 Репутация: нет Всего: 7 |
Samotnik
На самом деле то же самое, только немножко сумбурно |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 3 Всего: 191 |
Shurr,
garbuz, если вопрос решен, поставь плиз галочку |
|||
|
||||
| garbuz |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: нет Всего: 11 |
Вот тут решил потестировать спринговое приложение и опять встал на месте.
Создал папку tests, пометил ее как папку для тестов (то что обсуждалось выше) Создал класс FirstTest
Запускаю, но вылетает ошибка. Не поднимается контекст спринга, не найти файл.
Вопрос - как правильно указать пути до спринговых файлов, которые лежат в WEB-INF. Пробовал по-разному, все не работает Вот как пробовал: @ContextConfiguration(locations = {"/web/WEB-INF/applicationContext.xml", "/web/WEB-INF/database-config.xml"}) @ContextConfiguration(locations = {"web/WEB-INF/applicationContext.xml", "web/WEB-INF/database-config.xml"}) @ContextConfiguration(locations = {"../web/WEB-INF/applicationContext.xml", "../web/WEB-INF/database-config.xml"}) @ContextConfiguration(locations = {"..web/WEB-INF/applicationContext.xml", "..web/WEB-INF/database-config.xml"}) @ContextConfiguration(locations = {"../WEB-INF/applicationContext.xml", "../WEB-INF/database-config.xml"}) @ContextConfiguration(locations = {"..WEB-INF/applicationContext.xml", "..WEB-INF/database-config.xml"}) @ContextConfiguration(locations = {"../applicationContext.xml", "../database-config.xml"}) Ничего не работает. Как правильно указать путь? |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java tools & IDE's | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |