Skip to content

The PhantomJS Laravel Testing package allows you to easily test your Laravel application's JavaScript functionality.

License

Notifications You must be signed in to change notification settings

DivineOmega/PhantomJS-Laravel-Testing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PhantomJS Laravel Testing

The PhantomJS Laravel Testing package allows you to easily test your Laravel application's JavaScript functionality. It makes use of the PhantomJS headless browser to emulate how a real use would interact with your pages. If you have done regular Laravel testing, you'll be happy to know that this package attempts to match its syntax as much as possible.

💡 NOTE: If you're starting a new project, I recommend using Laravel Dusk instead. PhantomJS development is being suspended and will likely not receive any future updates.

Features

  • Identical syntax to standard Laravel testing code where possible
  • PhantomJS-powered headless browser allows full functionality testing, including JavaScript & AJAX
  • Makes use of database transactions to prevent testing having permanent effects on the database
  • Automated setup and install of all dependencies, including phantomjs binary

Requirements

  • Only Laravel 5.1 is currently supported

Installation

  1. Add composer script "PhantomInstaller\\Installer::installPhantomJS" to composer.json post-install-cmd and post-update-cmd arrays.
  2. Install via composer require divineomega/phantomjs-laravel-testing.
  3. Add service provider DivineOmega\PhantomJSLaravelTesting\ServiceProvider::class to config/app.php providers array.
  4. Add global middleware \DivineOmega\PhantomJSLaravelTesting\Http\Middleware\GlobalMiddleware::class to app/Http/Kernel.php middleware array.

Usage

Simply change your test classes to extend PhantomJSTestCase instead of TestCase, then run your unit tests as you normally do. PhantomJS will automatically be started up when required.

An example test case is shown below.

<?php

use DivineOmega\PhantomJSLaravelTesting\Objects\PhantomJSTestCase;

class ExampleTestCase extends PhantomJSTestCase
{
    public function testGoogleShowsImFeelingLucky()
    {
    
        $this->visit('https://google.co.uk/');
        $this->see('I\'m Feeling Lucky');
    }

    public function testGoogleShowsImFeelingDucky()
    {
        $this->visit('https://google.co.uk/');
        $this->see('I\'m Feeling Ducky');
    }
}

About

The PhantomJS Laravel Testing package allows you to easily test your Laravel application's JavaScript functionality.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages