2017 © Pedro Peláez
 

library cool-contexts

Some cool contexts for Behat

image

spyl/cool-contexts

Some cool contexts for Behat

  • Tuesday, June 9, 2015
  • by spyl94
  • Repository
  • 1 Watchers
  • 5 Stars
  • 305 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

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

Here they are : CoolContexts !, (*2)

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

Quick start

Install CoolContexts with composer:, (*4)

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, (*5)

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 !, (*6)

Build with love by @spyl94., (*7)

The Versions