No description, website, or topics provided.
PHP
Switch branches/tags
Nothing to show
Pull request Compare This branch is 435 commits behind Behatch:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
i18n
src/Sanpi/Behatch
.gitignore
LICENSE
README.rst
build.php
composer.json
init.php

README.rst

Behatch contexts

Behatch contexts provide most common behat tests.

Installation

This extension requires:

  • Behat 2.4+
  • Mink 1.4+

Through PHAR

Download the .phar archives:

And activate it in your in your behat.yml:

# behat.yml
default:
    # ...
    extensions:
        behatch_contexts.phar: ~

Through Composer

The easiest way to keep your suite updated is to use Composer.

You can add behatch contexts as dependancies for your project or rapidly bootstrap a behatch projects.

Project dependancy

  1. Define dependencies in your composer.json:
{
    "require": {
        ...

        "sanpi/behatch-contexts": "*"
    }
}
  1. Install/update your vendors:
$ curl http://getcomposer.org/installer | php
$ php composer.phar install
  1. Activate extension by specifying its class in your behat.yml:
# behat.yml
default:
    # ...
    extensions:
        Sanpi\Behatch\Extension: ~

Project boostraping

  1. Download the behatch skeleton weth composer:
$ curl http://getcomposer.org/installer | php
$ php composer.phar create-project sanpi/behatch-skeleton

Note

Browser, json, table and rest step need a mink configuration, see Mink extension for more informations.

Usage

In your main context, using behatch contexts:

<?php

use Behat\Behat\Context\BehatContext;
use Sanpi\Behatch\Context\BehatchContext;

class FeatureContext extends BehatContext
{
    public function __construct(array $parameters)
    {
        $this->useContext('behatch', new BehatchContext($parameters));
    }
}

After this, you wouldn't have new available step. You should enable, in behat.yml, the desired steps group:

Sanpi\Behatch\Extension:
    browser: ~
    debug: ~
    system: ~
    json: ~
    table: ~
    rest: ~

Configuration

  • browser - more browser related steps (like mink)
  • debug - helper steps for debuging
    • screenshot_dir - the directory where store screenshots
    • screen_id - then xorg screen id
  • system - shell related steps
    • root - the root directory of the filesystem
  • json - JSON related steps
    • evaluation_mode - javascript "foo.bar" or php "foo->bar"
  • table - play with HTML the tables
  • rest - send GET, POST, … requests and test the HTTP headers