PHP / Runkit + PHPUnit = 100% покрытие тестами
2011-07-26 00:59:39
Здравствуйте, уважаемые коллеги.
Одним из косвенных показателей качества кода считается ...
+ развернуть текст сохранённая копия
Здравствуйте, уважаемые коллеги.
Одним из косвенных показателей качества кода считается code coverage — степень покрытия его тестами (как правило, имеются в виду модульные тесты). В большинстве случаев за coverage принимается соотношение количеству строк кода, в котрое попадает управление во время прогона тестов, к общему числу значимых (не являющихся комментарием, пустой строкой, или, например одной фигурной скобкой, обозначающей начало или конец блока) строк кода модуля.
Другим же условием хороших тестов является отсутствие сторонних эффектов (side effects), как например создание/удаление файлов, установка сетевых соединений, запись в порты и т.д.
Однако, когда дело касается модуля, взаимодествующего с внешним миром, эти два требования вступают в противоречие. И ладно, если речь идет о файловых операциях, когда на помощь приходит vfsStream. Но что делать, когда надо тестировать, скажем, прямую работу с сокетами или код, использующий функции curl_*?
Под катом вы найдете мое решение и, в качестве бонуса, еще одну ОПП-обертку к курлу, полностью покрытую тестами.
Читать дальше →
Тэги:
code,
coverage,
curl,
php,
phpunit,
runkit,
модульный,
тестирование
Салон Тойота Королла
2011-07-25 23:20:22
+ развернуть текст сохранённая копия
Салон Toyota Corolla предоставляет много пространства как водителю, так и пассажирам. Интерьер составлен так, чтобы использовать все пространство, которое Тойота Королла может предоставить. Самым примечательным в салоне, что бросается сразу в глаза - это центральная панель, она сделана из материалов серо-черных тонов и сделано очень качественно, придраться не к чему.
Магнитола и климат контроль очень изящно вписались в общий дизайн и без них салон выглядит каким то неполноценным. Однако панель приборов нельзя назвать очень удобным, все цифры на них маленькие, стрелки датчиков тоже небольшие, еще и эти постоянные навязчивые подсказки, которые больше мешают чем помогают.
Тэги:
corolla,
toyota,
седан
all the single ladies
2011-07-25 15:03:42
официально Секонд Хенд это мой любимый бутик
450 р и вот оно, внезапное платье на выпускной, ...
+ развернуть текст сохранённая копия
официально Секонд Хенд это мой любимый бутик
450 р и вот оно, внезапное платье на выпускной, если не помру, отожрусь или если не выгонят
Тэги:
absolute,
cereal!,
coincidence,
hot!,
smth
PHP / ООП-обертка для PHP lib_curl
2011-07-25 14:54:10
Пару лет назад я сделал небольшой персональный проект под названием «Аггрегатор комиксов». Суть ...
+ развернуть текст сохранённая копия
Пару лет назад я сделал небольшой персональный проект под названием «Аггрегатор комиксов». Суть проекта в том, что есть куча сайтов с комиксами, на которых нет RSS-лент. И мне было откровенно лень ходить по этим сайтам вручную и проверять апдейты.
Посему был написан примитивный «паучок», обходящий сайты по расписанию, разбирающий содержимое страниц и по разным алгоритмам выковыривающий информацию об апдейтах и складывающий эту информацию в базу, откуда уже другой скрипт, вьюер, генерировал РСС, Атом или Хтмл.
Читать дальше →
Тэги:
curl,
curl_lib,
php,
php5
Моё Море
2011-07-24 11:53:00
она зашла за мной часа в три ночи, сразу после того, как мы разошлись по домикам
предложила ...
+ развернуть текст сохранённая копия
она зашла за мной часа в три ночи, сразу после того, как мы разошлись по домикам
предложила сходить к морю, что чревато, конечно же, потому что отбой в час и за территорию лучше не соваться
я решила, что не стоит ее в таком состоянии пускать одну, но, вообщем-то, мне и самой очень хотелось на море, на самом деле
это была странная ночь - луны не было вообще нигде, а я никогда так не видела моря ночью прежде
мы вышли на пляж, огни от баров скрылись за невысокими холмами, оставляя нас практически в полной темноте
и тогда в первый раз разглядела море
думалось мне почему-то только о Пиратах Карибского Моря
мы приходили как-то на пляж ночью, когда нам надоедало танцевать в душном баре, мы танцевали на песке и светила луна, нас было много
а тут мы брели одни
линию горизонта не было видно за туманом, который стелился где-то далеко над водой
"Море, оно как магнит, оно притягивает"
оставалось ощущение даже не то что бы отсутствия границы между небом и землей, а просто пропасти, пустоты
"Вода это первое что появилось на земле, мы все вышли из нее и все, все туда вернемся"
но что больше всего меня удивляло в этой картине, так это Млечный Путь
так как огни остались позади, ничто не могло заставить звёзды померкнуть
галактика вздымамаль в небо огромным столпом,она восставала откуда-то из темноты прямо над морем и описывала головокружительную дугу у нас над головами
"Не нужно бояться моря, оно чувствует, когда ты его боишься и оно тебя подавит"
мы брели в темноте и я поежилась, потому что море чувствовало, что я его боюсь
"С ним нужно договариваться"
его плеск показался мне самым жутким звуком, который мне доводилось слышать, в кромешной тьме, под мерцающим крылом галактики
я думала о времени, о вечности, о морских чудящах, о том, как трещат мачты на кораблях и как по дну стелится тина
я всматривалась в темноту на том месте, где должен быть горизонт. асболютно черная материя, и я сказала:
"Мне кажется, как будто мы на краю земли", а она ответила "Нет, как будто никакого края нет"
я ходила к морю ночью потом еще несколько раз
но никогда бобльше звезды не сияли так ярко, никогда небо и море не складывались в бездну и никогда больше меня не пугал плеск воды в темноте
наверное, мы договорились
Тэги:
absolute,
cereal!,
complicated,
thought