Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Цитата(maddoc @  19.4.2010,  12:32 Найти цитируемый пост)
(те некоторые тесты в 1 фаиле вызываются раньше других) 

Да вроде как и не специфицировано нигде, что одни должны выполняться раньше других. Это же глупость - как я тогда буду проверять один-единственный тест при, скажем, фиксе изолированного бага?

Если есть какие-то общие действия - вынеси их в @Before/@After, ну а генеральная линия - тесты должны быть абсолютно независимыми, и оставлять после себя систему в том же виде, в каком она была на момент входа в тест.

Автор: maddoc 19.4.2010, 23:42
хорошо, например.
У меня есть статическое поле, обьект А.
я создаю обьект А в методе и проверяю, создался он или нет. в следующем методе я работаю с этим обьектом. 
Оба метода помеченны как @Test

Автор: batigoal 20.4.2010, 08:13
Цитата(maddoc @  20.4.2010,  00:42 Найти цитируемый пост)
я создаю обьект А в методе и проверяю, создался он или нет. в следующем методе я работаю с этим обьектом. 

Это два разных теста. Второй тоже должен создавать объект A, но не проверять корректность его создания, а сразу приступать к работе.

Автор: 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
всем спасибо  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)