Kahlan — это полнофункциональная среда тестирования Unit & BDD в стиле RSpec/JSpec, которая использует синтаксис describe-it
и продвигает тестирование в PHP на шаг вперед.
Kahlan позволяет вам заглушить или исправить ваш код напрямую, как в Ruby или JavaScript, без каких-либо необходимых PECL-расширений.
Презентация Уоррена Сеймура на Unified Diff (2015)
Презентация Grafikart на французском языке (2016, Kahlan 2.X)
chat.freenode.net (сервер) #kahlan (канал)
Полную документацию смотрите здесь
PHP 7.2+
Композитор
phpdbg или Xdebug (требуется только для анализа покрытия кода)
Синтаксис RSpec/JSpec
Метрики покрытия кода (требуется xdebug или phpdbg)
Удобная система стабинга (насмешки и пророчества больше не нужны)
Установите заглушки непосредственно в методах вашего класса (т.е. позволяет динамическое издевательство)
Возможность Monkey Patch вашего кода (т.е. позволяет заменять основные функции/классы на лету)
Проверьте вызываемые методы в ваших классах/экземплярах
Встроенные генераторы отчетов (отчеты в терминале или HTML через Istanbul или lcov)
Встроенные экспортеры (комбинезоны, код климата, Scrutinizer, клевер)
Расширяемый, настраиваемый рабочий процесс
<?phpdescribe("Пример", function() { it("делает ожидание", function() { ожидаем(true)->toBe(true); }); it("ожидает вызова методов", function() { $user = new User(); ожидаем($user)->toReceive('save')->with(['validates' => false]); $ user->save(['validates' => false]); }); it("заглушает функцию", function() {allow('time')->toBeCalled()->andReturn(123); $user = new User(); ожидаем($user->save())-> toBe (истина) ожидаем ($ user-> создано) -> toBe (123); }); it("заглушка класса", function() {allow('PDO')->toReceive('prepare', 'fetchAll')->andReturn([['name' => 'bob']]); $user = новый пользователь(); ожидаем($user->all())->toBe([['name' => 'bob']]); }); });
$ композитору требуется --dev kahlan/kahlan
Примечание. Кэлен использует семантическое управление версиями и ведет CHANGELOG
, чтобы помочь вам легко понять, что происходит.
git clone git://github.com/kahlan/kahlan.git cd kahlan composer install bin/kahlan # to run specs or, bin/kahlan --coverage=4 # to run specs with coverage info for namespaces, classes & methods (require xdebug)