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)