PHPSpec Testbench
Forked to heybigname/phpspec-testbench
to incorporate updated dependencies., (*1)
, (*2)
, (*3)
Overview
PHPSpec Testbench is built upon benconstable/phpspec-laravel and will bridge the gap between PHPSpec and orchestral/testbench by using the Laravel Application fixture as provided by testbench instead of having to need a fully prepared Laravel Application for yourself. With the phpspec-testbench
extension, you can spec your Laravel Packages easily, whilst keeping all of the functionality that the phpspec-laravel
extension brings., (*4)
Requirements
PHPSpec Testbench is built with Laravel 5 in mind and thus depends on the corresponding L5 compatible versions from phpspec-laravel
and orchestral-testbench
. PHPSpec Testbench does not work with Laravel 4., (*5)
Installation
Simply pull in this package via composer:, (*6)
composer require pixelindustries/phpspec-testbench --dev
, (*7)
Usage
In your phpspec.yml
file, simply add the Pixelindustries\PhpspecTestbench\LaravelExtension
to the extension
array:, (*8)
extensions:
- Pixelindustries\PhpspecTestbench\LaravelExtension
Please note that this extension should not be used in addition to the phpspec-laravel
extension, but rather as a replacement., (*9)
After the above configuration, simply write your specs the way you are used to, utilizing phpspec-laravel
's functionality in the process., (*10)
Custom application class
Should you need to do custom routines for the application bootstrapping, such as making sure your own developed service providers are registered, you can utilize the app_classname
setting for the laravel_extension
key in your phpspec.yml
file:, (*11)
laravel_extension:
app_classname: Acme\Tests\MyCustomApp
This gives you the flexibility to implement your own routines in the getEnvironmentSetUp()
method as provided by testbench. For example:, (*12)
<?php
namespace Acme\Tests;
use Pixelindustries\PhpspecTestbench\App as TestApp;
class MyCustomApp extends TestApp
{
protected function getEnvironmentSetUp($app)
{
// Custom bootstrapping
}
}
Please note that your custom class must extend the Pixelindustries\PhpspecTestbench\App
class., (*13)
Thanks
Thanks to @BenConstable for his great work with phpspec-laravel, to @crynobone for his fantastic work with testbench, and of course a big thank you to of the other contributors and to everyone who's reported issues and bugs with these projects., (*14)