Kahlan adalah kerangka pengujian Unit & BDD berfitur lengkap ala RSpec/JSpec yang menggunakan sintaksis describe-it
dan memajukan pengujian di PHP satu langkah lebih maju.
Kahlan memungkinkan Anda mematikan atau menambal kode Anda secara langsung seperti di Ruby atau JavaScript tanpa ekstensi PECL yang diperlukan.
Presentasi Warren Seymour di Unified Diff (2015)
Presentasi Grafikart dalam bahasa Perancis (2016, Kahlan 2.X)
chat.freenode.net (server) #kahlan (saluran)
Lihat dokumentasi lengkapnya di sini
PHP 7.2+
Komposer
phpdbg atau Xdebug (hanya diperlukan untuk analisis cakupan kode)
Sintaks RSpec/JSpec
Metrik Cakupan Kode (diperlukan xdebug atau phpdbg)
Sistem stubbing yang praktis (ejekan atau ramalan tidak lagi diperlukan)
Tetapkan stub pada metode kelas Anda secara langsung (yaitu memungkinkan tiruan dinamis)
Kemampuan untuk Monkey Patch kode Anda (yaitu memungkinkan penggantian fungsi/kelas inti dengan cepat)
Periksa metode yang dipanggil di kelas/instance Anda
Reporter Bawaan (Pelaporan terminal atau HTML melalui istanbul atau lcov)
Eksportir Bawaan (Baju, Kode Iklim, Scrutinizer, Semanggi)
Alur kerja yang dapat diperluas dan disesuaikan
<?phpdescribe("Contoh", function() { it("membuat ekspektasi", function() { ekspektasi(benar)->toBe(benar); }); it("mengharapkan metode untuk dipanggil", function() { $user = new User();expect($user)->toReceive('save')->with(['validates' => false]); $ pengguna->simpan(['memvalidasi' => false]); }); it("menghentikan fungsi", function() { izinkan('waktu')->toBeCalled()->andReturn(123); $pengguna = Pengguna baru(); harapkan($pengguna->simpan())-> toBe(benar) mengharapkan($pengguna->dibuat)->toBe(123); }); it("menghentikan kelas", function() {allow('PDO')->toReceive('prepare', 'fetchAll')->andReturn([['name' => 'bob']]); $user = Pengguna baru(); mengharapkan($pengguna->semua())->menjadi([['nama' => 'bob']]); }); });
$ komposer memerlukan --dev kahlan/kahlan
Catatan: Kahlan menggunakan Versi Semantik dan memelihara CHANGELOG
untuk membantu Anda memahami dengan mudah apa yang terjadi.
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)