Руководство по модульному тестированию. Часть V: имитирующие методы и переопределение конструкторов

  • PHP
  • 2 года назад

В предыдущем уроке по PHPUnit вы познакомились с такими эффективными инструментами, как имитирующие объекты и методы-заглушки. Эти понятия являются залогом успешного модульного тестирования, и как только они «улягутся» у вас в голове, вы начнете понимать, насколько полезным и простым может быть тестирование.

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

Читать далее...

Руководство по модульному тестированию. Часть IV: Имитирующие объекты, методы-заглушки и внедрение зависимости

  • PHP
  • 2 года назад

В предыдущих статьях я показал вам, как писать базовые тесты для базовых методов. Теперь вы можете пользоваться аннотацией @dataProvider, создавать отчеты о покрытии, и знаете, как пользоваться отдельными утверждениями.

До этого мы писали тесты для простых методов. Вызов внутреннего метода в рамках одного и того же класса, вставка блока if, но ничего особо сложного.

Читать далее...

Установка Wordpress на Ubuntu 14.04

На данный момент WordPress является самой популярной CMS (системой управления контентом) в Интернете. С ее помощью можно с легкостью создавать гибкие блоги и вебсайты на сервере MySQL с PHP-обработкой. Пользуясь огромной популярностью, WordPress это отличный способ быстро настроить и запустить вебсайт.

В этой статье мы рассмотрим установку экземпляра WordPress с веб-сервером Apache на Ubuntu 14.04. Необходимые условия

Читать далее...

Обновление до PHP 7 на CentOS 7

Версия PHP 7, выпущенная 3 декабря 2015 года, обещает значительное увеличение скорости работы по сравнению с предыдущими версиями этого языка, а также новые функции (например, подсказки скалярного типа). В этом руководстве объясняется, как быстро обновить PHP 5.x (любую версию), работающую на веб-сервере Apache или Nginx, до PHP 7 при помощи пакетов, предоставляемых сообществом разработчиков.

Читать далее...

Обновление до PHP 7 на Ubuntu 14.04

  • PHP
  • 2 года назад

Версия PHP 7, выпущенная 3 декабря 2015 года, обещает значительное увеличение скорости работы по сравнению с предыдущими версиями этого языка, а также новые функции (например, подсказки скалярного типа). В этом руководстве объясняется, как быстро обновить PHP 5.x (любую версию), работающую на веб-сервере Apache или Nginx, до PHP 7

Если у вас есть другие сервисы или приложения с активными пользователями, то лучше сначала провести тестирование.

Читать далее...

Улучшенная сериализация с Symfony

Если вы когда-либо создавали сценарий экспорта или API, то вам наверняка приходилось форматировать свой контент и иметь дело с сериализацией.

В Symfony этой задачей зачастую занимается JMS Serializer (так указано в документации Symfony).

Но попользовавшись JMS Serializer в нескольких проектах, я остался им не совсем доволен. Я столкнулся с мелкими недочетами, преимущественно с предположениями, которые не соответствуют моим требованиям и которые невозможно легко переопределить или перезадать. На мой взгляд, один этот факт существенно снижает эффективность JMS Serializer.

Читать далее...

События жизненного цикла в Doctrine 2

  • PHP
  • 2 года назад

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

Это могло бы быть так же просто, как обновление поля updated_at каждый раз при изменении записи в базе данных, или отправка электронного письма каждый раз, когда в вашем приложении регистрируется новый пользователь.

Читать далее...

Обучающее руководство по модульному тестированию. Часть III: Тестирование защищенных/частных методов, отчеты о покрытии и индекс CRAP

  • PHP
  • 2 года назад

В третьей части моего обучающего руководства по тестированию я объясню, что такое покрытие кода и почему 100%-е покрытие кода не является обязательной целью.

Но сначала поговорим о тестировании ваших частных/защищенных методов!

Если вы загляните во вторую часть этого руководства, то заметите, что мы инстанцируем класс, который хотим протестировать, через обычный запрос new. У вас может возникнуть вопрос о том, как тестровать защищенные или приватные методы, если к ним невозможно получить доступ напрямую через инстанцированный объект ($url->someProtectedMethod()).

Читать далее...