kahlan
5.2.8
Kahlan 是一个功能齐全的 Unit & BDD 测试框架,类似于 RSpec/JSpec,它使用describe-it
语法并将 PHP 中的测试向前推进了一步。
Kahlan 允许您像在 Ruby 或 JavaScript 中一样直接对代码进行存根或猴子修补,而无需任何必需的 PECL 扩展。
Warren Seymour 在 Unified Diff 上的演讲 (2015)
Grafikart 法语演示(2016,Kahlan 2.X)
chat.freenode.net (服务器) #kahlan (频道)
请参阅此处的完整文档
PHP 7.2+
作曲家
phpdbg 或 Xdebug(仅用于代码覆盖率分析)
RSpec/JSpec 语法
代码覆盖率指标(需要 xdebug 或 phpdbg)
方便的存根系统(不再需要嘲讽或预言)
直接在类方法上设置存根(即允许动态模拟)
能够对代码进行猴子修补(即允许动态替换核心函数/类)
检查类/实例上调用的方法
内置报告器(通过 istanbul 或 lcov 进行终端或 HTML 报告)
内置导出器(Overalls、Code Climate、Scrutinizer、Clover)
可扩展、可定制的工作流程
<?phpdescribe("示例", function() { it("做出一个期望", function() { Expect(true)->toBe(true); }); it("期望调用方法", function() { $user = new User(); Expect($user)->toReceive('save')->with(['validates' => false]); $用户->保存(['validates' => false]); }); it("存根函数", function() { allowed('time')->toBeCalled()->andReturn(123); $user = new User(); Expect($user->save())-> toBe(true) 期望($user->创建)->toBe(123); }); it("存根一个类", function() { allowed('PDO')->toReceive('prepare', 'fetchAll')->andReturn([['name' => 'bob']]); $user = new User(); Expect($user->all())->toBe([['name' => 'bob']]); }); });
$ 作曲家要求 --dev kahlan/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)