Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Codeception — тестирование по-новому

PHP
PHP очень популярный язык программирования, но тестирование в нем, это скорее прерогатива экспертов, а не жизненная необходимость. Неужели это от того, что PHP-разработчики поголовно быдло-кодеры? Я считаю, что нет. Скорее всё от того, что системы тестирования порой излишне усложнены. А тесты, наоборот, должны были предельно просты: легко читаться, писаться, отлаживаться, и конечно же, быстро выполняться. Мое виденье того как это можно воплотить в PHP вылилось в проект под названием Codeception.

С ним тесты для ваших веб-приложений могут выглядеть так:
<?php
$I = new TestGuy($scenario);
$I->wantTo('create new blog post');
$I->amOnPage('/blog/posts');
$I->click('Create new post');
$I->fillField('Title','Codeception, a new way of testing!');
$I->fillField('Text','Codeception is new PHP full-stack testing framework.');
$I->click('Send');
$I->see('Congratulations, your post is successfully created!');


Согласитесь, такой тест понятен без дополнительных комментариев.
А теперь самое интересное: этот код без всяких изменений может быть выполнен как функциональный тест в фреймворках symfony, Symfony2,Zend Framework, а также в браузерном эмуляторе Goutte и даже через Selenium. Таким образом, вам предлагается единый интерфейс для написания функциональных тестов практически для любого сайта.
Читать дальше →
Всего голосов 75: ↑70 и ↓5 +65
Просмотры82.7K
Комментарии 68

Unit-тестирование в Codeception

PHP
Неделю назад я уже писал о Codeception и об его использования для тестирования PHP приложений. После прошлого поста несколько багов было исправлено. Спасибо за багрепорты. Если вы ещё не пробовали Codeception, советую посмотреть прошлую статью и испытать его для приемочных тестов.

Сегодня я хочу рассказать, как в Codeception реализовано юнит-тестирование в BDD-стиле.

Замечу, что модуль для тестирования юнитов пока экспериментальный. Не в значении «нестабильный», а в значении «может и будет расширяться для удоволетворения всех необходимых нужд».
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры14.2K
Комментарии 18

Легкий способ начать тестировать

PHP
Если вы PHP-разработчик, и по разным обстоятельствам тесты для своих приложений не пишете, то эта статья для вас. В ней я постараюсь вкратце показать с чего начать и что делать, чтобы написание тестов приносило вам радость, а вашему приложению стабильность.

Итак, первый совет. Забудьте всё что вы знаете о юнит-тестах. Швырните табуреткой в человека, который сказал вам, что без них не обойтись. Попробуем разобраться, в каких случаях нужно их использовать, а в каких — нецелесообразно.
Читать дальше →
Всего голосов 83: ↑61 и ↓22 +39
Просмотры49.3K
Комментарии 54

Codeception — новости проекта

PHPTDD
imageЯ уже писал на Хабре о Codeception — фреймворке для тестирования приложений на PHP. Если вы никогда раньше не писали тестов для вашего приложения, вам обязательно стоит взглянуть на Codeception. Он очень прост в использовании и сделан специально, чтобы уберечь разработчиков от рутины.

Сегодня я хотел бы рассказать, какие фичи появились в проекте в последнее время, а также отвечу на пару популярных вопросов.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Просмотры4.9K
Комментарии 12

Скринкаст: Знакомство с Codeception

Тестирование IT-системPHP
Фреймворк для автоматического тестирования веб-приложений на PHP — Codeception живет и развивается. Но в этот раз вместо скупой порции новостей я бы хотел представить вам первый скринкаст в котором показаны азы работы с Codeception. Если вы только читали про Codeception, то вам обязательно стоит взглянуть на него в действии. Ну а если не читали, но у вас есть веб-сайт, который бы вы хотели протестировать — тоже взгляните.
Смотреть видео
Всего голосов 27: ↑24 и ↓3 +21
Просмотры7.4K
Комментарии 15

Вышел Codeception 1.1

Тестирование IT-системPHP
Фреймворк для автоматического тестирования PHP проектов Codeception обзавелся первым серьезным апдейтом. Пришлось перелопатить всё ядро, всё поломать, всё починить и сделать это так, чтобы не сломать обратную совместимость. Как результат, теперь в тестах можно использовать любой PHP-код, а не только сценарий, добавилась возможность находить элементы по XPath, а также появилась возможность использования модулей Codeception в тестах PHPUnit.
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Просмотры1.8K
Комментарии 8

Дайджест интересных новостей и материалов из мира PHP за последние две недели №8 (29.12.2012 — 11.01.2013)

Zfort GroupРазработка веб-сайтовPHP


Новогодние праздники подходят к финишу, и мы снова в строю со свежей порцией новостей и материалов из мира PHP.

Приятного чтения!
Читать дальше →
Всего голосов 47: ↑36 и ↓11 +25
Просмотры17.1K
Комментарии 34

Дайджест интересных новостей и материалов из мира PHP за последние две недели №13 (12.03.2013 — 25.03.2013)

Zfort GroupРазработка веб-сайтовPHP


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 86: ↑73 и ↓13 +60
Просмотры26.7K
Комментарии 21

Дайджест интересных новостей и материалов из мира PHP за последние две недели №20 (18.06.2013 — 30.06.2013)

Zfort GroupРазработка веб-сайтовPHP


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 83: ↑71 и ↓12 +59
Просмотры21.2K
Комментарии 10

Простой инструмент для тестирования PHP приложений

PHP

Для кого эта статья


Скорее всего для тех, кто ещё не начал тестировать, но имеет такое желание. Опытных в этом деле разработчиков удивить не получится, но тех кто ещё не перешел на сторону света, попробую подтолкнуть на этот шаг.

Предыстория


Решил разобраться с автоматическим тестированием. Раньше этого делать не приходилось, да и тогда не было особо нужно. Зато было свободное время, которое решил потратить с пользой на будущее.
Почитав теорию, начал искать инструмент для этого. Предсказуемо первым на горизонте показался PhpUnit. Но он показался каким-то громоздким, что ли.
Более удобным показался Codeception — разные виды тестов, выразительный синтаксис. Но, посмотрев зависимости, я понял, что мне столько всего не нужно.
Двигаясь в сторону простоты, я нашел atoum, а потом вообще классную вещь под названием Testify.php. Тут-то я подумал, что наконец нашел то, что мне нужно.
Но нет, читаем дальше
Всего голосов 16: ↑11 и ↓5 +6
Просмотры11.6K
Комментарии 9

Дайджест интересных новостей и материалов из мира PHP за последние две недели №23 (29.07.2013 — 11.08.2013)

Zfort GroupРазработка веб-сайтовPHP


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 63: ↑52 и ↓11 +41
Просмотры19.7K
Комментарии 31

Дайджест интересных новостей и материалов из мира PHP № 30 (10—24 ноября 2013)

Zfort GroupРазработка веб-сайтовPHP


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 63: ↑58 и ↓5 +53
Просмотры21.1K
Комментарии 23

Дайджест интересных новостей и материалов из мира PHP № 36 (9 — 23 февраля 2014)

Zfort GroupРазработка веб-сайтовPHP


Предлагаем вашему вниманию очередную подборку актуальных новостей, интересных материалов и полезных инструментов.

Приятного чтения!
Читать дальше →
Всего голосов 72: ↑60 и ↓12 +48
Просмотры20.9K
Комментарии 32

Дайджест интересных новостей и материалов из мира PHP № 42 (1 — 16 июня 2014)

Zfort GroupРазработка веб-сайтовPHP


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 50: ↑43 и ↓7 +36
Просмотры20.2K
Комментарии 23

Дайджест интересных новостей и материалов из мира PHP № 43 (16 – 30 июня 2014)

Zfort GroupРазработка веб-сайтовPHP


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 51: ↑48 и ↓3 +45
Просмотры19.4K
Комментарии 12

Видео докладов с конференции DevConf 2014

BadooРазработка веб-сайтов
Этим летом в Москве проходила конференция профессиональных веб-разработчиков DevConf 2014. Мы в Badoo поддерживали конференцию, выступали с докладами и сделали видео докладов, которые были интересны нашим разработчикам. Так как спикеры были «за», то мы делимся видео с нашими подписчиками.

1. «StatsCollector, или «Мама! Он и меня посчитал!»».
Старынин Валерий, PHP разработчик отдела BI, Badoo.
Доклад о том, как мы собираем статистику для каждого пользователя, обсчитываем каждое открытие страницы (и не только!), обрабатываем 120000 событий в секунду и планируем расширяться.



Читать дальше →
Всего голосов 60: ↑55 и ↓5 +50
Просмотры22.2K
Комментарии 16

Модульное тестирование поведения Yii2 с помощью Codeception

Yii
Из песочницы
В разработке программного обеспечения написание автоматических тестов часто отодвигается на второй план более насущными проблемами. Так и в моем случае, код писать приходилось, а тесты к нему — нет. При этом давно хотелось попробовать модульное тестирование собственного кода, а тут под руку подвернулось поведение Yii2 ManyToMany Behavior, о котором уже писали на Хабре. Это поведение я сначала немного расширил, а затем решил собрать комплект тестов.

Сами тесты, в том числе те, о которых идет речь в этой статье, можно посмотреть в репозитории по ссылке выше. Все команды выполнялись под Windows с глобально установленным composer, но я думаю, что разработчики, пользующиеся Linux, без затруднений смогут адаптировать их под себя.

Далее мы рассмотрим настройку Codeception с модулем для Yii2 и создание тестов для поведения.
Узнать, как...
Всего голосов 15: ↑14 и ↓1 +13
Просмотры42.4K
Комментарии 12

PHP-Дайджест № 66 – интересные новости, материалы и инструменты (28 июня – 12 июля 2015)

Zfort GroupРазработка веб-сайтовPHP


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 37: ↑34 и ↓3 +31
Просмотры21.3K
Комментарии 4

Производительное юнит-тестирование веб-приложений на примере yii2 и codeception

Разработка веб-сайтовТестирование IT-системPHPYiiТестирование веб-сервисов
Из песочницы
Задача данной статьи — показать самый производительный путь написания тестов в контексте разработки веб-приложений.
Здесь и дальше под термином тесты будут подразумеваться юнит-тесты.

Разработка веб-приложений сопровождается постоянным использованием в коде базы данных. Если код работы с базой данных и код работы с результатом взаимодействия с базой данных не разделен, нам потребуется база данных в подавляющем большинстве тестов проекта. Также, если код использует методы фреймворка, нам для тестов потребуется подключить фреймворк. Пока тестов мало, всё отлично. Когда тестов становится больше, замечается проблема: скорость выполнения тестов немного напрягает. Когда время выполнения всех юнит-тестов становится больше чем минута, становится невозможным постоянно запускать все тесты. Разработчик начинает запускать только часть тестов, пытаясь уменьшить негативное влияние длительного времени работы тестов, но проблема снижения эффективности тестирования со временем будет только возрастать.

Источник проблемы находится в отсутствии четкого разделения кода работы с базой данных, кода, которому необходим фреймворк, и кода, для работы которого не нужна ни база данных, ни фреймворк.

Наша цель будет разобраться, каким образом необходимо писать тесты и код для обеспечения максимальной скорости выполнения тестов.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры20.5K
Комментарии 3

PHP-Дайджест № 73 – интересные новости, материалы и инструменты (18 октября – 5 ноября 2015)

Zfort GroupРазработка веб-сайтовPHP


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 41: ↑38 и ↓3 +35
Просмотры23.2K
Комментарии 13
1