Кодинг на улице

12 июл. 2013 г. | | |

Ведь так оно и есть.

Перед...

8 июл. 2013 г. | | |

Перед началом очередного проекта
Перед добавлением нового функционала
Перед улучшением работающего кода

TDDigest e05

12 июн. 2013 г. | | |

BDD in Action: Часть 1, Часть 2
Let your tests tell you when your code design sucks.
Why Not To Want 100% Code Coverage
Tips and tricks для  более эффективного использования phpUnit в слайдах PHPUnit best practicies. А так же, чем хорош phpUnit для создания mock-объектов - хорошая статья на Хабре. И, закрывая тему phpUnit, Parallel testing for phpUnit with ParaTest
TDD Javascript with Jasmine #video  #en
Статья Building the right software…right, It’s easy…RIGHT? с разъяснением разницы, что значит делать правильно и делать правильное. Путаница возникает, в основном, из-за использоания ATDD и BDD и TDD... Слишком много букв D, всё driven, только в какую сторону? Автор предлагает следующую структуру: сначала используется BDD - для определения целей, за ним - ATDD - для реализации целей, и потом TDD - для качественной реализации.
И небольшое видео, в котором объяняется разница между BDD и TDD:
Все знают мантру TDD "Red-Green-Refactoring", но как мы определяем, что рефакторинг нужен? И как найти золотую середину между минимизацией времени, затрачиваемом на разработку, и качеством кода, который придеся кому-то сопровождать в будущем?  Об этом речь в видео (а заодно и слайдах) Code Smells: Your Refactoring Cheat Codes #en #video #tdd #refactoring
Правильный подход к вопросу о unit-тестировании кода на stackoverflow. #en #php
О синергии тестируемости кода и дизайна приложения #video #en

Обсуждение трёх подходов к mobile testing:

TDDigest e04

29 мая 2013 г. | | |

В сегодняшней подборке материалов из мира TDD много видео интересных выступлений и интервью.
Видео с выступления #Сергея Теплякова на msswit "Тестируемая архитектура: моки, стабы, рефакторинг" #video #ru #mock #design #msswit
"TDD I learned..." - автор рассказывает о своих неудачных попытках писать тесты и полном непонимании бенефитов TDD до тех пор, пока не натолкнулся на мастер-класс Roy Osherove по TDD. Из видео, которое идет более 9 часов, автор вынес для себя много полезного, понял разницу между интеграционными тестами и юнит тестами, и впечатлился AAA-подходом (Arrange, Act, Assert):
This approach, by eliminating assert code intermixed with code that sets up or acts upon your objects, reduces smelly tests by separating what is being tested from all the other stuff.
Такой подход разделяет проверку (assert) результата, инициализацию объектов (arrange) и действия над ними (act), отделяя то, что нужно протестировать, от всего остального, тем самым устраняя дурной "запашок-с" тестов.
#en #tdd
Интересное интервью со Стивом Фрименом и Нэтом Прайсом, авторами книги "Growing Object-Oriented Software, Guided by Tests"

How do you start a new project with TDD? -  своеобразный подход к настройке среды для нового проекта. #en
BDD and Acceptance Testing with RSpec & Capybara #en #video #ruby #bdd #rspec
Drupal unit testing #en #drupal #php
Беседа о unit-тестировании в php #en #php #unit-testing
Юнит-тестирование в CakePhp #en #php #unit-testing #video
JUnit / TestNG Testing Spring Security With Spring MVC Test Framework

Инструменты

Mockery - ещё один mock-фреймворк для unit-тестов
atoum.js - стильный, модный, молодёжный ;) фреймфорк для тестирования PHP5.3+ теперь и для js
Swaks - швейцарский нож для тестирования SMTP
dotCover - тест-ранер, а так же инструмент для  сбора аналитики о степени покрытия кода тестами для VS от JetBrains (правда, платный)

TDDigest e03

22 мая 2013 г. | | |

Для начала разберёмся, как писать тестируемый код на javascript, и поговорим о том, как тестировать полученный код с помощью QUnit, а так же как наслаждаться процессом тестирования асинхронного javascript с помощью Mocha #javascript #en #mocha
Туториал о том, как писать тестируемый и поддерживаемый код на php, чего избегать в коде, а что, наоборот, является правильным подходом. Ещё серия туториалов, детально раскрывающих процесс юнит-тестирования с PHPUnit. Рассматриваются такие темы, как написание полезного теста (!), моки, стабы, dependency injection, тестирование закрытых методов класса (если уж очень нужно), перегруженные конструкторы и почему 100% покрытие кода не так уж и важно. #en #php #phpunit

TDDigest e02

15 мая 2013 г. | | |

Открывает второй выпуск tddigest немного филосовский пост "10 Правил Дзен-Программиста" от Christian Grobmeier #en #zen
Размышления на тему "Design for tests vs Design for API" #en #tdd #ruby
Очередные tips & tricks от php-девелоперов. В прошлый раз нам показывали, как тестить защищённые методы класса, а в этот раз говорят о том, как надо мокать singleton с помощью PHPUnit. Забавно, ведь даже на самом php.net красным написано: Ахтунг! Берегись синглтона! (шутки в сторону) А теперь серьёзно, когда может пригодиться такой подход? Я вижу один случай - есть база legacy кода, которую нужно поддерживать. Рефакторить код или вносить изменения без тестов -  смело, но глупо. Поэтому приходится иногда заниматься таким: мокать синглоны или чего ещё хуже выдумывать. #php #phpunit #antipattern