Codeception - WTF?

15
Inception? Perception? Codeception! Современное тестирование в PHP Михаил Боднарчук

description

Тестирование в PHP: Inception? Perception? Codeception!, Михаил Боднарчук Михаил в своем докладе затронет следующие темы: “Terra Incognita” тестирования в PHP Знакомимся с Codeception Пробуем тестировать простое Веб приложение Используем паттерн PageObject в Codeception Интегрируемся с фреймворками и базой данных Расширяем стандартные модули Делаем покрытие кода Тестируем API Генерируем читабельные отчеты И как бонус: пробуем на вкус сценарные юнит-тесты.

Transcript of Codeception - WTF?

Page 1: Codeception - WTF?

Inception? Perception?

Codeception! Современное тестирование в PHP

Михаил Боднарчук

Page 2: Codeception - WTF?

Обо мне

Веб-разработчик с 2004

PHP && Rails

Живу в Киеве

Люблю мерзнуть в горах

@davert

Page 3: Codeception - WTF?

ПоХаПэ

75% веб сайтов сделаны на PHP

Среди них Wikipedia, Facebook, …

Интернет-магазины (Magento, OSCommerce)

Сайты (Drupal, Wordpress, Joomla)

Фреймворки: Symfony2, Zend2, Yii, Kohana

Page 4: Codeception - WTF?

PHP тоже нужно тестировать

PHPUnit

Behat

Codeception

Page 5: Codeception - WTF?
Page 6: Codeception - WTF?

Почему Codeception

Легко начать

Легко писать и поддерживать тесты.

Легкий debug

Page 7: Codeception - WTF?

Тесты

<?php

$I = new WebGuy($scenario);

$I->wantTo('create todo task');

$I->amOnPage('/tasks');

$I->fillField('New Task‘, 'Update a blog');

$I->click('Add');

$I->see('Update a blog', '#tasks');

Page 8: Codeception - WTF?

Что нужно чтобы начать?

English

Минимальные знания PHP (1 вечер)

Установленная IDE (Netbeans, Eclipse, PhpStorm)

Консоль!

Page 9: Codeception - WTF?

Тестируем приложение

РЕАЛЬНОЕ ПРИЛОЖЕНИЕ. ВААЩЕ!

МНОГО КОДА!!!!

МНОГО PHP!!!!

не пытайтесь повторить это в домашних условиях

ни один баг не пострадал при написании этих тестов

Page 10: Codeception - WTF?
Page 11: Codeception - WTF?

Тестируем форму логина.

Пишем простой тест…

и рефакторим его до неузнаваемости.

Конечно же используем PageObject

Page 12: Codeception - WTF?

Покрытие кода

Только не матами! Это задача разработчиков.

Remote CodeCoverage.

XML отчет

HTML отчет.

Page 13: Codeception - WTF?

Remote CodeCoverage

Необходимо внедрить файл c3.php

Конфигурация: какие файлы включать?

Выполнить с параметром --coverage

Page 14: Codeception - WTF?

Принципы

Легко начать

KISS (Keep It Simple)

«Всё включено»

Page 15: Codeception - WTF?

Вопросы?

http://codeception.com

@codeception

Михаил Боднарчук