Kahlan is a full-featured Unit & BDD test framework a la RSpec/JSpec which uses a describe-it
syntax and moves testing in PHP one step forward.
Kahlan embraces the KISS principle and makes Unit & BDD testing fun again!
Killer feature: Kahlan allows to stub or monkey patch your code directly like in Ruby or JavaScript without any required PECL-extentions.
chat.freenode.net (server) #kahlan (channel)
See the whole documentation here (documentation for Kahlan <= 1.3.0 can still be found here)
- PHP 5.5+
- Composer
- Xdebug (if you want to perform code coverage analysis)
- Simple API
- Code Coverage metrics (xdebug or phpdbg required)
- Handy stubbing system (mockery or prophecy are no longer needed)
- Set stubs on your class methods directly (i.e allows dynamic mocking)
- Ability to Monkey Patch your code (i.e. allows replacement of core functions/classes on the fly)
- Check called methods on your class/instances
- Built-in Reporters (Terminal or HTML reporting through istanbul or lcov)
- Built-in Exporters (Coveralls, Code Climate, Scrutinizer, Clover)
- Extensible, customizable workflow
- Small code base (~10 times smaller than PHPUnit)
describe("Example", function() {
it("passes if true === true", function() {
expect(true)->toBe(true);
});
it("passes if false !== true", function() {
expect(false)->not->toBe(true);
});
});
$ composer require --dev crysalead/kahlan
Note:
Kahlan uses the ferver versioning so a "~x.y"
version constraint shouldn't ever BC-break.
git clone git://github.com/crysalead/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)