Package Data | |
---|---|
Maintainer Username: | jarektkaczyk |
Maintainer Contact: | jarek@softonsofa.com (Jarek Tkaczyk) |
Package Create Date: | 2016-08-16 |
Package Last Update: | 2021-04-06 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-11 15:13:56 |
Package Statistics | |
---|---|
Total Downloads: | 24,120 |
Monthly Downloads: | 2 |
Daily Downloads: | 1 |
Total Stars: | 16 |
Total Watchers: | 2 |
Total Forks: | 10 |
Total Open Issues: | 2 |
Kahlan suite for testing Laravel application providing intuitive kahlan (jasmine based) describe-it syntax with Laravel functional testing goodies.
If I'm saving you some time with my work, you can back me up on Patreon page.
See usage example on https://github.com/jarektkaczyk/kahlan-driven-laravel
Take a look at the example spec
Add to your project
composer require --dev sofa/laravel-kahlan:"~5.4"
Add this line to your kahlan config file (create it if necessary):
/* /path/to/your/app/kahlan-config.php */
<?php
Sofa\LaravelKahlan\Env::bootstrap($this);
Create your first spec in /spec
folder, for example /spec/AppSpec.php
and run test suite with vendor/bin/kahlan
. Working example can be found on https://github.com/jarektkaczyk/kahlan-driven-laravel
/* /path/to/your/app/spec/AppSpec.php */
<?php
describe('My awesome Kahlan driven Laravel app', function () {
it("provides the same testing API as Laravel's own TestCase", function () {
$this->laravel->get('/')
->assertSee('Laravel 5')
->assertStatus(200);
});
}
Should you need to customize .env variables for the test suite, you have 2 options:
In the .env.kahlan
file for persistent variables
At runtime:
/path/to/app$ vendor/bin/kahlan -env=DB_CONNECTION=sqlite,MAIL_DRIVER=log
In your specs you can use all the kahlan features, as well as Laravel testing sugar:
app()
, event()
etc$this->app->method()
or $this->laravel->method()
$this->laravel->get('/')->assertResponseOk()
$this->app === $this->laravel->app === app()
For tests that don't require Laravel there's --no-laravel
cli option, since booting up the application for each test has huge impact on performance:
/path/to/app$ vendor/bin/kahlan --spec=spec/unit --no-laravel
Alternatively you can provide NO_LARAVEL=true
in .env
/.env.kahlan
file, then you would enable laravel only when necessary:
/path/to/app$ vendor/bin/kahlan --spec=spec/functional --no-laravel=false
#Happy coding!