| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java tools & IDE's > eclipse + Junit |
| Автор: maddoc 19.4.2010, 11:32 |
| если запускать тесты по 1, то все проходит нормально. но как только я запускаю группы тестов (right click on test folder -> run as-> junit test ), то при выполнении некоторых нарушается порядок вызова тестовых методов (те некоторые тесты в 1 фаиле вызываются раньше других) |
| Автор: alex_nevolin 19.4.2010, 14:55 |
| Тесты должны быть независимы друг от друга и могут выполняться в произвольном порядке. Обычно если нужен определенный порядок то делают один Unit Test либо написать свою имплементацию TestSuite где определить порядок. |
| Автор: batigoal 19.4.2010, 17:10 |
Да вроде как и не специфицировано нигде, что одни должны выполняться раньше других. Это же глупость - как я тогда буду проверять один-единственный тест при, скажем, фиксе изолированного бага? Если есть какие-то общие действия - вынеси их в @Before/@After, ну а генеральная линия - тесты должны быть абсолютно независимыми, и оставлять после себя систему в том же виде, в каком она была на момент входа в тест. |
| Автор: maddoc 19.4.2010, 23:42 |
| хорошо, например. У меня есть статическое поле, обьект А. я создаю обьект А в методе и проверяю, создался он или нет. в следующем методе я работаю с этим обьектом. Оба метода помеченны как @Test |
| Автор: powerOn 20.4.2010, 09:54 |
| Еще можно посмотреть юнит тест антипаттерны, в частности антипаттерн Generous Leftovers (щедрые остатки). |
| Автор: jk1 20.4.2010, 10:12 |
| Полностью согласен с тем, что от порядка выполнения тестов ничего зависеть не должно. Но управлять порядком при желании можно - API для запуска junit-тестов это http://www.java-course.ru/students/part10.html (см раздел про порядок ближе к концу статьи) |
| Автор: maddoc 21.4.2010, 11:58 |
| всем спасибо |