ПредишенСледващото

Тестване код досадно, но от голяма полза, когато се работи по проект. Днес ние ще използваме ТДУ да пишат и тест код по-ефективно.

Какво е TDD?

От самото начало на компютърната ера, програмисти и грешка се борят за надмощие. Това е неизбежен феномен. Всеки програмист стана жертва на грешката. Кодът не е безопасно. Ето защо ние се проведат изпитвания.

Test Driven развитие (тест задвижване развитие) - техника за програмиране, в която единица тестове за програмата или негов фрагмент са написани на програмата (тест и първи развитие) и като такъв управлява нейното развитие.

Как става това?

Разработка чрез тестове или TDD е кратък повтарящ се цикъл на развитие:

  1. Преди да пишете код, първо трябва да се напише автоматизиран тест за вашия код. По време на теста за писане е необходимо да се разгледа всички възможни грешки въвеждане на данни и на изхода на браузъра
  2. След това можете да започнете да пишете код. Необходимо е да се направят промени, докато кодът няма да се изпълнява автоматични тестове
  3. След като кодът е преминал теста, можете да започнете да почисти код (рефакториране)

Test Driven развитие (TDD)

Добре, но това е по-добре, отколкото редовно тестване?

Вие не извърши тестване програма по няколко причини:

  • смятате, че това е загуба на време, тъй като те са незначителни изменения код
  • не сте имали достатъчно време, за да се тества, като ръководител на проекта би искал да получи продукта възможно най-скоро
  • вие го отлагам до утре

Нищо не се случва за дълго време, и се движите вашия продукт за производство. Но понякога, след като продуктът се премества в производството, всичко се обърка.


TDD елиминират грешките ни. Когато една програма е разработена с използването на разработка чрез тестове, тя ви позволява да правите промени и да провеждат тестове по-бързо и ефективно. Всичко, което трябва да направите - е да стартирате тестовете. Ако кодът преминава всички тестове, така че може да се използва, тогава ние направихме грешка с промените. Знаейки, коя част от теста е неуспешна, по-лесно е да се елиминират грешки.

Как да се извършват тестове?

Има много рамки за тестване на PHP скриптове. Един от най-широко използваните е PHPUnit.

PHPUnit е отлична рамка за тестване, които могат лесно да бъдат интегрирани в своите проекти или други проекти, с помощта на популярни PHP рамки.

В нашия пример, ние няма да се наложи в най-различни функции, предлагани PHPUnit. Ето защо, ние ще използваме проста система тест, наречен SimpleTest.

Помислете за разработването и тестването на книгата за гости, в които всеки потребител може да добавяте или преглеждате съобщения. Да приемем, че оформлението вече е направено, и ние просто си върши клас, който съдържа логиката на книгата за гости, която включва четене и писане от базата данни. метод за този клас четене - това е, което ние ще се разработи и тества.

Стъпка 1. Определяне SimpleTest

Изтеглете SimpleTest тук и разархивирате в някоя папка. Всичко трябва да изглежда така:

Test Driven развитие (TDD)

Index.php ще се свърже guestbook.php, и се обадете на метод записва изхода. Папката класове ще бъдат guestbook.php, и в папката тест се декомпресира SimpleTest.

Стъпка 2: Планирайте вашите действия

Втората стъпка е най-важна, тъй като в него ще започнем да се създаде нашия тест. За да направите това, вие трябва да планирате какво си функция е да правя това, което получават входните данни, и което се връща в скрипта. Тази стъпка е подобна на играта на шах - трябва да знаете всичко за вашия опонент (програмата), включително всички негови слабости (грешки) и якост (какво ще се случи, ако програмата работи успешно).

Да се ​​създаде схемата на работа на нашата книга за гости:

Стъпка 3. Напишете тест

Сега ние можем да напишете първия тест. Първо, създаване на файл с име guestbook_test.php в папката тест.

На следващо място, нека да изпълни нашите изисквания от стъпка 2.

Както можете да видите тук, ние проверяваме изхода на книгата за гости с записи без. Ние се провери дали те отговарят на два критерия функционират разположен в Стъпка 2. Всеки един от нашите тестови функции започва с думата "тест". Направихме това, за SimpleTest защото когато стартирате този клас ще търси функция започва с думата "тест" и да ги изпълнява.

В нашия тест, ние използвахме някои методи за проверка клас: assertTrue, assertIsA и assertEquals. assertTrue проверки функционални дали стойността е вярно. assertIsA проверява видът на променливата. И накрая, assertEquals функция проверява дали дадена променлива е равна на определена стойност.

Има и други методи за изпитване, предвидени SimpleTest:

Fail ако $ х == фалшива

Стъпка 4. Загуба

След като сте готови писане на код, можете да стартирате теста. На първия старт Тестът трябва да се провалят. Ако това не стане, тогава теста не проверява нищо.

За да стартирате теста, трябва да отворите guestbook_test.php браузър. Вие ще видите:

Тъй като ние не сме създали нашия клас книга за гости, ние не успя. За да поправите това, да създадете файл в папка guestbook.php класове. Класът ще съдържа методи, които сме планирани, но те съдържат не са. Не забравяйте, че пишем тестове, преди да напишете кода на продукта.
Тъй като ние не сме създали нашия клас книга за гости, ние не успя. За да поправите това, да създадете файл в папка guestbook.php класове. Класът ще съдържа методи, които сме планирани, но те съдържат не са. Не забравяйте, че пишем тестове, преди да напишете кода на продукта.

Когато стартирате следващия път на теста, ще видите:

Когато стартирате следващия път на теста, ще видите:

Както можем да видим, нашия тест код все още не е преминала, корекцията, че ние zaymomsya следващата стъпка.

Стъпка 5: Писане кода на продукта

Сега, когато имаме тест, можем да започнем да пишем код. Open guestbook.php файл и започнете да пишете:

В guestbook.php клас има някои грешки, които направихме нарочно, а сега ние ще проверим нашия код издържи теста или не:

Проверката показва, че тестът има грешка. С помощта на диагностичните съобщения лесно за установяване на местонахождението тест, който причинява грешка:

Това ни казва, че се връща масива не разполага с правилния ключ. Въз основа на това, ние знаем каква част от нашия код не работи правилно:

Сега, когато стартирате теста, ще видим:

Стъпка 6. редакции и подобряване на код

Тъй като нашият код, който тествахме беше лесно, тестване и оправят бъгове не трая дълго. Но ако това е обемист приложение, тогава ще трябва да похарчите много пъти, за да промените кода, ясно го, като по този начин подобряване на код подкрепа в бъдеще. Проблемът се състои в това, че допълнителни промени доведоха до нови грешки. След като сте направили промени, ние трябва да изпълнете теста отново.

Стъпка 7: Повторете

В крайна сметка, когато основните нови функции, ще трябва да напише нови тестове. Това е лесно! Повторете всички стъпки от стъпка 2 (както си SimpleTest файл трябва вече да се настрои), и да започне цикъла всичко отначало.

заключение

Ние сме се обмисли използването SimpleTest за разработване на продукти. Ние не са обхванати всички характеристики на SimpleTest. Допълнителна информация може да бъде намерена с помощта на документацията (инж.) Или статия от Уикипедия (инж.).

Тестване - неразделна част от цикъла на развитие, но това обикновено е първото нещо, което се реже с развитие кратки срокове. Надяваме се, че след като прочетете тази статия, ще оцените тест задвижване развитие.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!