Я впервые начал заниматься разработкой через тестирование ещё когда программировал на PHP. Тогда в нашем арсенале разработчика использовался отличный фреймворк SimpleTest от Маркуса Бейкера. Мне этот инструмент очень нравился. С тех пор я имел дело с фреймворками для тестирования на C, Perl, Java и Python, при этом SimpleTest до сих пор остаётся моим главным фаворитом независимо от языка.
Но со временем я огрокался заинтересовался автоматизированным тестированием — стал читать об этом книги, статьи в блогах, экспериментировать с новыми паттернами тестирования и даже набил себе татуировки xUnit — временами меня стала охватывать фрустрация. Часто мне требовалось подобрать конкретный тест для фреймворка и языка, но либо фреймворк, либо язык, либо они оба оказывались недостаточно мощными, и я не мог чётко выразить на них мою идею.
Только когда я стал много программировать на Python, меня вдруг озарило, почему так происходит. В большинстве фреймворков xUnit, в особенности тех, где предоставляются хорошие мок-объекты, более чем адекватно поддерживаются любые паттерны тестирования, которые я только могу придумать. Фреёмворк SimpleTest определённо из их числа. Проблемы, с которыми я сталкивался, происходят из самого языка.