Kahlan é uma estrutura de teste de unidade e BDD completa à la RSpec/JSpec que usa uma sintaxe describe-it
e leva os testes em PHP um passo à frente.
Kahlan permite que você faça stub ou monkey patch em seu código diretamente, como em Ruby ou JavaScript, sem quaisquer extensões PECL necessárias.
Apresentação de Warren Seymour no Unified Diff (2015)
Apresentação Grafikart em francês (2016, Kahlan 2.X)
chat.freenode.net (servidor) #kahlan (canal)
Veja a documentação completa aqui
PHP 7.2+
Compositor
phpdbg ou Xdebug (necessário apenas para análise de cobertura de código)
Sintaxe RSpec/JSpec
Métricas de cobertura de código (requer xdebug ou phpdbg)
Sistema de stubbing prático (zombaria ou profecia não são mais necessárias)
Defina stubs diretamente em seus métodos de classe (ou seja, permite simulação dinâmica)
Capacidade de Monkey Patch em seu código (ou seja, permite a substituição de funções/classes principais em tempo real)
Verifique os métodos chamados em suas classes/instâncias
Repórteres integrados (relatórios de terminal ou HTML por meio de Istambul ou lcov)
Exportadores integrados (macacões, clima de código, escrutinador, trevo)
Fluxo de trabalho extensível e personalizável
<?phpdescribe("Exemplo", function() { it("faz uma expectativa", function() { expect(true)->toBe(true); }); it("espera que métodos sejam chamados", function() { $user = new User(); expect($user)->toReceive('save')->with(['validates' => false]); $ usuário->salvar(['valida' => falso]); }); it("stubs uma função", function() { permitir('time')->toBeCalled()->andReturn(123); $user = new User(); expect($user->save())-> toBe(true) expect($usuário->criado)->toBe(123); }); it("stubs uma classe", function() { permitir('PDO')->toReceive('prepare', 'fetchAll')->andReturn([['name' => 'bob']]); $user = new Usuário(); expect($usuário->todos())->toBe([['nome' => 'bob']]); }); });
$ compositor requer --dev kahlan/kahlan
Nota: Kahlan usa o Versionamento Semântico e mantém um CHANGELOG
para ajudá-lo a entender facilmente o que está acontecendo.
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)