spyl/cool-contexts

Some cool contexts for Behat

dev-master 2015-06-09 13:40 UTC

This package is auto-updated.

Last update: 2024-04-17 09:33:30 UTC


README

Since I use these contexts in every projects, I thought it would be nice to have them in a separate repo...

Here they are : CoolContexts !

They are highly coupled to my projects, but you can find some inspiration there. Be nice with them and create cool things ;-)

Quick start

Install CoolContexts with composer:

composer require spyl/cool-contexts

Contexts

  • DefaultContext : some helpers methods in addition to KernelAwareContext
  • DoctrineFixturesContext : load your fixtures before suite and after each @database tags
  • WebApiContext : useful steps to test your (REST) APIs
  • CommandContext : useful steps to test your commands ;)

Configuration

Edit behat.yml

default:
    # ...
    suites:
        api:
            # ...
            contexts:
                - Spyl\CoolContexts\WebApiContext
                - # ...
        commands:
            # ...
            contexts:
                - Spyl\CoolContexts\CommandContext

Examples

# features/api/login.features

Feature: Login Restful Api
  As an API client
  I want to be able to login
  So I can access the application

Scenario: Anonymous API client wants to login
    Given I send a POST request to "/login_check" with body:
"""
{
  "username": "user",
  "password": "userpass"
}
"""
    Then the JSON response should match:
"""
{
    "token": @string@,
    "user": {
      "username": "user"
    }
}
"""
# features/commands/instances.feature

@database
Scenario: Anonymous user wants to create an instance coucou.fr
    Given I run "instance:create coucou coucou.fr"
    Then the command exit code should be 0
    And I should see "Instance coucou has been created !"

Information

If you need to add custom steps, you can easily extends them, feel free to send me a PR if you think your changes could be useful to everyone !

Build with love by @spyl94.