crysalead / kahlan
5.2.0
2022-01-16 15:26 UTC
Requires
- php: >=7.1
Requires (Dev)
- dev-master
- 5.2.0
- 5.1.3
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.9
- 5.0.8
- 5.0.7
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.7.7
- 4.7.6
- 4.7.5
- 4.7.4
- 4.7.3
- 4.7.2
- 4.7.1
- 4.7
- 4.6.4
- 4.6.3
- 4.6.2
- 4.6.1
- 4.6.0
- 4.5.0
- 4.4.0
- 4.3.1
- 4.3.0
- 4.2.0
- 4.1.8
- 4.1.7
- 4.1.6
- 4.1.5
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.1.18
- 3.1.17
- 3.1.16
- 3.1.15
- 3.1.14
- 3.1.13
- 3.1.12
- 3.1.11
- 3.1.10
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.5.8
- 2.5.7
- 2.5.6
- 2.5.5
- 2.5.4
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.1
- 2.4.0
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.1
- 2.0.0
- 1.3.x-dev
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.11
- 1.2.10
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-dev
- dev-deprecated-5.0
This package is not auto-updated.
Last update: 2022-02-01 12:44:15 UTC
README
Kahlan 是一个功能齐全的单元测试和BDD测试框架,类似于 RSpec/JSpec,它使用 describe-it
语法,并将测试在 PHP 中推进了一步。
Kahlan 允许您像在 Ruby 或 JavaScript 中一样直接模拟或猴子补丁您的代码,无需任何 PECL 扩展。
视频
IRC
chat.freenode.net (服务器) #kahlan (频道)
文档
查看完整的文档这里
要求
主要功能
- RSpec/JSpec 语法
- 代码覆盖率指标(需要 xdebug 或 phpdbg)
- 便捷的模拟系统(不再需要 mockery 或 prophecy)
- 直接在类方法上设置模拟(即允许动态模拟)
- 能够对代码进行猴子补丁(即允许动态替换核心函数/类)
- 检查您的类/实例上调用过的方法
- 内置报告器(终端或通过 istanbul 或 lcov)进行 HTML 报告)
- 内置导出器(Coveralls,Code Climate,Scrutinizer,Clover)
- 可扩展、可自定义的工作流程
语法
<?php describe("Example", function() { it("makes an expectation", function() { expect(true)->toBe(true); }); it("expects methods to be called", function() { $user = new User(); expect($user)->toReceive('save')->with(['validates' => false]); $user->save(['validates' => false]); }); it("stubs a function", function() { allow('time')->toBeCalled()->andReturn(123); $user = new User(); expect($user->save())->toBe(true) expect($user->created)->toBe(123); }); it("stubs a class", function() { allow('PDO')->toReceive('prepare', 'fetchAll')->andReturn([['name' => 'bob']]); $user = new User(); expect($user->all())->toBe([['name' => 'bob']]); }); });
屏幕截图
默认报告示例
详细报告示例
特定范围代码覆盖率示例
安装
通过 Composer
$ composer require --dev kahlan/kahlan
注意:Kahlan 使用了语义化版本控制,并维护一个变更日志
来帮助您轻松理解发生了什么。
通过 Git 克隆
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)