| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Design, Quality, Testing > Помогите выбрать Unit-Test framework |
| Автор: EvilsInterrupt 23.10.2013, 22:22 |
| Почитал различные статьи по теме юнит-тестирования в Java, но так и не смог остановиться на чем-то конкретном. Я начинающий в Java , а TDD применяю при разработке на C++ с помощью Boost.Test. Прошу помощи в выборе ) |
| Автор: LSD 24.10.2013, 16:21 |
| JUnit 4 самый распространенный и большинство других фреймворков умеют интегрироваться именно с ним. JUnit 3 устарел, так что имеет смысла его использовать. |
| Автор: EvilsInterrupt 24.10.2013, 21:36 |
| LSD, Я что-то не обнаружил фичи которая есть в TestNG это возможность задать зависимость одного теста от другого. Может я ее проморгал и она есть в JUnit4 ? |
| Автор: LSD 25.10.2013, 16:07 |
| Есть всякие обходные пути добиться этого, но стандартного - нет. Это сделано намеренно http://geosoft.no/development/unittesting.html. |
| Автор: EvilsInterrupt 26.10.2013, 19:36 |
| LSD, Вы про "8. Keep tests independent" ? |
| Автор: LSD 28.10.2013, 13:05 |
Да. |
| Автор: EvilsInterrupt 29.10.2013, 10:57 |
| LSD, Это весьма спорное утверждение. Применяю TDD программируя на C++ и в результате пришел к выводу, что есть куски кода, которые зависят от корректной работы других. К примеру: Есть функция записи в лог, которая берет std::string filename и она будет некорректной, если вдруг по каким-либо причинам сам std::string работает не верно. Следовательно testWriteToLog() зависит от testStdString(). Вернее не зачем выполнять тест testWriteToLog(), если testStdString() провален. |
| Автор: EvilsInterrupt 30.11.2013, 22:55 |
Да, это две независимые между собой части приложения, но они не зависимы Физически. Однако логически они зависимы друг от друга по той лишь причине что одна из них работает лишь только тогда, когда вторая работает корректно и хорошо! Еще раз: Если проверка по корректной работе std::string завершена с ошибкой, т.е. failed , то осуществлять проверку корректной работы записи в лог не имеет смысла и эту проверку сразу же считать "failed". Приведу аналогию из жизни: Вы решили купить диван, но Вы же не поедите в магазин сразу же! Уверен Вы откроете свой любимый веб-браузер и узнаете часы работы магазина. Если вдруг Вы узнаете, что магазин работает до 19:00 сегодня, а сейчас уже 18:55, то уверяю Вы останетесь дома! По одной лишь причине нету никакого смысла ехать в магазин, если до конца рабочего дня в магазине осталось 5 мин. Результат попытки покупки дивана уже известен, т.к. за 5 мин приехать - выбрать - оплатить - вынести из магазина вы вряд ли сможете. С тестами точно также! Есть тесты которые проверяют компоненты используемые в работе других компонентов. Если первый тип тестов завершается с ошибкой, то не имеет смысла осуществлять проверку второго типа тестов. Кстати именно по этому в TestNG есть возможность указать что тест зависит от какого-либо другого. |
| Автор: LSD 2.12.2013, 14:38 | ||
Еще раз: я не говорил про отсутвие зависимостей, я говорил про то что модули должны собираться независимо. Пихать в один модуль и строки и логгирование это плохой дизайн. Вообще не вижу никакой связи сабжем. |