Protractor

Protractor — движок для запуска системных (end-to-end, браузерных) тестов. Внутри он использует seleniumс драйверами для браузера (chromedriver), а сами тесты пишутся с синтаксисом jasmine. Про него и карму я уже писал, впрочем mocha и cucumber тоже поддерживаются. Из особенностей — protractor имеет интеграцию с angular (находит модели и repeat-директивы) — отсюда и название слов (angle — […]

Контекстная реклама и эмоции

рагические новости и эмоционально окрашенные статьи по-моему надо как-то отмечать, что-бы подбор материалов по-контексту не работал. И это не только касается рекламы, но и автоподборки сопутствующих статей. Только вручную добавленные материалы. Конечно на этот счёт социопат либо George Carlin могли бы поспорить что смерть — полезна, смех — тем более, […]

Как я на собеседования ходил

Ходил к народу я как-то на собеседования.. — В одной поболтали, выслали задание, я его даже вовремя сделал и отослал. Написали что мол мы ещё месяц вакансию подержим открытой, мол мало народу кандидируется.. ок. В итоге не ответили, хотя судя по офису я был у них старичком — В другой […]

Визуализация степени подгрузки js-файлов

Современные приложения всё больше начинают напоминать полноценное desktop решение, где в итоге запускается build-процесс с помощью grunt и мы получаем один кешируемый js файл. Теперь встаёт вопрос, как бы его загрузить так что-бы показать % подгрузки? Есть два отдельных скрипта — $script, который инжектит новые script-элементы с обратной связью и progress.js, который […]

Vagrant

Vagrant это программка управляющая виртуальными машинами, бегающих на VirtualBox. В веб-разработке виртуалки очень полезны тем что среду разработки и весь стэк необходимых системных сервисов можно изолировать для каждого проекта. Это позволяет избегать проблем с конфликтом версий какой-нибудь OpenSSL библиотеки между разными приложениями. Разработчикам психологически становиться понятней, что именно проект требует. Записывать […]

Про infinite scrolling

Бесконечный скролл, т.е. постепенный показ и подгрузка данных как реакция на действия пользователя, закрепился в SPA-приложениях. Я работаю с angular, но в целом это может и к backbone относиться.. Технически, данные на frontend хранятся в какой-то коллекции/сервисе. То что показывается пользователю — подмножество этих данных, т.е. может быть отфильтрованным, отсортированным и изменяемым […]

Интеграционные тесты с заготовленной БД

Я в последнее время всё больше люблю писать интеграционные (API) тесты — запускаю половину приложения, но не привязан к UI. Это золотая середина между очень медленными end-to-end тестами и очень быстрыми unit-тестами. Рассмотрим особый случай таких тестов, которые используют заготовленные данные под каждый тест. Такие тесты приходится создавать, когда проект […]

Тестирование файловой системы с vfsStream

Если вы заботитесь о качестве своего проекта и кода, то пишете unit-тесты. Но с ними всегда есть «особые случаи». Один из них — работа с файловой системой и ресурсами. Решение «в лоб» — параллельно создавать папку/дерево специально для тестов и надеяться что они не прыгнут на настоящие пути и ничего […]

Тестирование метода где есть new instance

Я когда-то писал про то что в phpunit небыло возможности нормально протестировать внутренние методы класса и приходится обращаться к runkit. Незнаю, была ли это моя недоработка, либо с версии 3.8 прошло уже много времени, но в 4.5 эта возможность есть! Моки в 4.5 стали удобней — они умеют перезаписывать как весь класс, так и его части. […]

Связывание тестов через @ticket аннотации с Jira

Jira от Atlassian — самый современный трекер задач и багов позволяющий гибко настроить workflow организации. Но если вы не доросли, не хотите использовать Bamboo, а скажем используете PHPCI для автоматического тестирования, то вам возможно будет полезно видеть результаты прогона тестов сгруппированных по фичам. Это достаточно спорная тем, многие апологеты тестирования не понимают зачем надо […]