heybigname / phpspec-testbench
PHPSpec extension for usage with orchestra/testbench's Laravel fixture
Requires
- heybigname/phpspec-laravel: ^4
- orchestra/testbench: ^3.0.0
This package is auto-updated.
Last update: 2024-10-29 05:22:35 UTC
README
Forked to heybigname/phpspec-testbench
to incorporate updated dependencies.
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.
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.
Installation
Simply pull in this package via composer:
composer require pixelindustries/phpspec-testbench --dev
Usage
In your phpspec.yml
file, simply add the Pixelindustries\PhpspecTestbench\LaravelExtension
to the extension
array:
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.
After the above configuration, simply write your specs the way you are used to, utilizing phpspec-laravel
's functionality in the process.
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:
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:
<?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.
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.