Подобряване с Codeception


Когато за пръв път започнах работа с codeception се сблъсках с някои неизбежни проблеми. Ще се опитам да ги покажа за да оцените приимуществото на тази система, както и тестовете като цяло.

Ето ги и тях:

  1. Първото нещо, което ми разкри codeception е файловата ми структура и начина по които е организирана. Важно е какви файлове се зареждат от всяка една част на апликацията и ако са преплетени един в друг може да усложни много тестването. Настройките, които първоначално нагласям трябва да са изолирани и да не пречат на тестовете. Това ми даде възможност да тествам с различни параметри всяка една част от системата. Най-лесния начин за добавяне на други параметри за мен беше да подам .env.testing файл преди .env на Codeception, което ми гарантира, че всичко може да се замени.
  2. Повечето неща при мен преминаваха през DI контейнер и това много улесни и тестването. Но за другите зависимости веднага си личи кое не си е на мястото. Най-много при unit тестването.. когато не можете да тествате определен вариант или да mock-нете някой клас. Точно в тези случаи трябва всичко да се изчисти за да работите по-добре за в бъдеще и тестовете да се пишат по-лесно.
  3. Докато пиша тестовете аз на практика си проверявах кода сам. На няколко пъти ми се е случвало да си показвам кода на колеги, да обеснявам какво прави и тогава винаги съм откривал някои грешки или съм се сещал за по-добри решения – принципа на гуменото пате. Не е толкова важно какво ще каже другия човек, но самото усилие да се предаде някаква информация ни настройва да мислим различно и да си открием проблеми или решения. Имам и реално гумено пате, но нещо не върши добра работа и не работи при мен. Това което работи почти по същия начин е писането на тестове. Тогава минавам кода повторно да обмисля логически какво трябва да тествам, както и дали не съм изпуснал нещо, но вече като мисля в перспектива. Тогава откривам най-много бъгове и ги хващам в преди дори да пусна и един тест.

Това са едни от най-сериозните ми приимущества при писането на тестове. Те помагат още преди да се пуснат за проверка.

, , ,

  1. Няма коментари.
(will not be published)