heybigname/phpspec-testbench

PHPSpec extension for usage with orchestra/testbench's Laravel fixture

2.0.0 2018-05-02 12:22 UTC

This package is auto-updated.

Last update: 2024-10-29 05:22:35 UTC


README

Forked to heybigname/phpspec-testbench to incorporate updated dependencies.

PXL icon

SensioLabsInsight

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.