spyl / cool-contexts
Some cool contexts for Behat
dev-master
2015-06-09 13:40 UTC
Requires
- behat/behat: ~3.0
- behat/mink: ~1.6@dev
- behat/mink-browserkit-driver: @dev
- behat/mink-extension: ~2.0
- behat/mink-selenium2-driver: @dev
- behat/symfony2-extension: ~2.0@dev
- coduo/php-matcher: 1.1.*
- doctrine/data-fixtures: ~1.0
- doctrine/inflector: ~1.0
- fzaninotto/faker: ~1.0
- guzzle/guzzle: ~3.7
- guzzlehttp/guzzle: ~4.0
- nelmio/alice: ~1.0
- phpunit/phpunit: 4.4.*@dev
- symfony/property-access: ~2.0
This package is auto-updated.
Last update: 2025-02-17 11:20:08 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.