PHP Дайджест # 2. тестування

Всім привіт !

Якщо ви з тих , хто пише код , який відразу правильно працює, - думаю , можете далі не читати : ) Як писав Стів Макконел , «Тестування вимагає, щоб ви розраховували знайти помилки в своєму коді . В іншому випадку ви, ймовірно , насправді їх не знайдете.» Але так як PHP - не строго типізований мова, наплодити багів набагато легше, ніж , приміром, в Java. - Якщо ви хочете знати підходи до тестування , коли потрібно писати тести, або як оптимізувати процес тестування , я дуже раджу прочитати главу № 22 «Тестування , яке виконується розробниками» з книги «Досконалий код » Стіва Макконнелла . - PHPUnit - найпопулярніший і часто використовуваний фреймворк для юніт -тестування , він відноситься до сімейства xUnit тестових бібліотек. Дозволяє протестувати майже все, що побажаєте . Хочете Database Testing ? Не питання, DBUnit до ваших послуг. На даний момент підтримує MySQL, PostgreSQL , Oracle and SQLite . Є можливість паралельного тестування з ParaTest і т.п . - Atoum - на мій погляд , дуже цікавий тестовий фреймворк , дозволяє писати більш читабельний код , ніж PHPUnit , фремворк надає простий , і в той же час дуже сильний mock engine , також вбудована підтримка BDD - like синтаксису написання тестів. - Simpletest - аналог PHPUnit . Дозволяє створювати Моки , також дозволяє симулювати перехід по посиланнях і відправку форм. Але фреймворк давно не оновлювався. Є кілька цікавих фреймворків для написання тестів у стилі BDD . Можна виділити 2 види BDD : SpecBDD і StoryBDD . У PHP реалізовані тестові фреймворки для кожного типу. - Behat - дозволяє описувати фичи зручним способом, а саме за допомогою человеко- читаних сценаріїв, це і є StoryBDD . Даний вид опису сценаріїв мені подобається, він зрозумілий і цікавий, приклад використання можна подивитися в проекті Sylius - це Symfony2 Ecommerce фреймворк . В PHPStorm є підтримка Behat . - Mink - використовується для написання приймальних тестів, можна використовувати в парі з Behat . Не буду вдаватися в подробиці, так як сам нечасто пишу приймальні тести , подивитися приклад використання можна тут . - PhpSpec -використовується для юніт -тестів , описи тестів у вигляді специфікацій. Відправною точкою в розумінні роботи буде офіційна документація , також можна почитати туториал і подивитися відео php - spec - is - so - good . Відео з laracasts допоможе зрозуміти, коли використовувати phpspec . - Codeception - використовується для написання приймальних, функціональних і юніт -тестів , код удобочітабелен і мінімалістичний . Весь тест описується у вигляді сценарію, повторюєте дії юзера: кліки, сабміта , та інше. - Behat і Codeception в порівнянні - автор пояснює, чому, на його погляд, функціональні тести краще писати з Behat , а Codeception використовувати для приймальних тестів (замість Behat + Mink ) . - Mockery - відмінний фреймворк для роботи з МОКами , його можна інтегрувати разом з PHPUnit або PHPSpec . - HTTPMock - назва говорить сама за себе , бібліотека для моков http запитів в юніт -тестах . - vfsStream -ця обгортка для потоків файлової системи дозволяє створювати Моки файлової системи. Тестувати можна і без неї , але вона дає кілька переваг , описаних тут . - TDD example - якщо написання тестів перед написанням коду для вас не знайоме - автор на своїх прикладах показує, як це може бути корисно. Насправді на PHP написано багато різних бібліотек для тестування. Якщо вам цікаво, можна подивитися тут .

Опубліковано: 24/01/15 @ 08:48
Розділ php

Рекомендуємо:

Дайджест цікавіх Вакансій № 170
IT Євротур 19: Fastpool / Fastdev (Стокгольм , Швеція)
26 січня, Київ - Курс « Automation for beginners : Selenium + Ruby »
31 січня, Київ - Тренінг " Test Driven development in Java "
iOS Digest # 2. HealthKit : перемагаємо старіння та збільшуємо длительность життя