модулно тестване със symfony + doctrine + PHPUnit

Работя със Symfony + Doctrine + PHPUnit, с NetBeans IDE. Ето моят текущ подход към тестването на единици.

  • Функцията setUp() зарежда тестовите приспособления от .yml файлове
  • функцията tearDown() изтрива всички данни от моделите. това се прави чрез преминаване през масив от имена на всички мои модели до нещо като Doctrine_Query::delete($modelName)->execute()

Това изглежда работи, но просто съм любопитен дали това е правилният начин да го направя. По същество изчиствам всички таблици след всяка тестова функция, като посочвам моделите/таблиците, от които да „изтрия всички“.

Q1: Просто се чудя дали това е правилният начин... Q2: това работи добре в Netbeans IDE, но не изглежда да работи чрез "./symfony test:unit". пропускам ли нещо или CLI работи само с lime?


person kctang    schedule 10.09.2009    source източник
comment
За да публикува по-актуален отговор, Symfony 2 използва PHPUnit за тестване. Можете да проверите ръководството за допълнителни подробности.   -  person Potherca    schedule 29.11.2012


Отговори (3)


./symfony test:unit изпълнява собствен тестов пакет на symfonys, който използва lime като тестова рамка, а не phpUnit.

И netbeans използва phpUnit за своята интегрирана тестова поддръжка. надяваме се, че netbeans ще добави тестова поддръжка за тестов пакет на symfony във входящата си поддръжка на symfony в netbeans 6.8

person deresh    schedule 16.09.2009

Ако искате да използвате phpunit със symfony, проверете: PHPUnit плъгин Само забележка, че това работи само с 1.2.x изглежда, за 1.4.x, което е това, което използвам в момента на работа, вижте: Още един PHPUnit плъгин този последният е в бета версия, но според автора работи за 1.4.x, скоро ще го пробвам, така че ако се сетя, ще се върна тук и хвърлям констатациите си. Честно казано не е твърде трудно да се откажете, ако не искате да го инсталирате, така че изпробването е лесно.

Ако случайно го пробвате, моля, публикувайте вашите открития, наистина ще ми е интересно да чуя вашите мисли. Намирам лайм за куц (ХА!), тъй като просто превръща подигравката в скучна работа.

person Saem    schedule 10.03.2010

Опитвам го външно с PHPUnit, без плъгин. Използвам Doctrine. Имам доста проблем. Ако стартирам ЕДИН PHPUnit (написан от мен) tes метод, това е страхотно. Второто, не толкова добро. Може да е начинът, по който използвам Doctrine. Изглежда, че въпреки че изтривам всичко от базата данни (между извикванията на PHPUnit Method) и възстановявам файла с приспособления, всичко това в setup(), DOCTRINE запомня предишни стойности.

Няма значение дали изтривам връзката, премахвам родителския обект, който е погрешно „запомнен“, refreshRelated() и т.н., все още получавам стари стойности, когато правя първото присвояване на връзка.

$parent=нов ParentType; //задаване на родителски стойности. $child=нов ChildType //задаване на стойности на дете $child['Parent']=$parent; $child->save();

Базата данни отразява всичко добре, това е Doctrine в PHPUnit, което не работи. Все още не съм го пробвал ИЗВЪН PHPUnit, в края на краищата, тествайте преди употреба, нали? Но може да се наложи да направя това и да видя дали е Doctrine или PHPUnit

person user327312    schedule 19.07.2010