2017 © Pedro Peláez
 

behat-extension behat-web-api-extension

Fork of behat/web-api-extension with a few changes for Linio needs

image

linio/behat-web-api-extension

Fork of behat/web-api-extension with a few changes for Linio needs

  • Monday, March 13, 2017
  • by linio
  • Repository
  • 1 Watchers
  • 5 Stars
  • 27,971 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 125 Forks
  • 0 Open issues
  • 8 Versions
  • 12 % Grown

The README.md

WebApiExtension

Latest Stable Version License Build Status, (*1)

Provides testing for REST APIs with Behat 3. This is a maintained fork of behat/web-api-extension with additional features and long term support., (*2)

Usage

Just add to your composer development dependencies:, (*3)

$ composer require --dev linio/behat-web-api-extension

And activate your extension:, (*4)

# behat.yml
default:
  # ...
  extensions:
    Behat\WebApiExtension: ~

Private to protected

One of the tricky things in the original behat/web-api-extension library is the extensive use of private properties and methods, preventing you from easily extending it. This fork fixes it by moving everything to protected., (*5)

Placeholder support

One of the new features from this fork is the ability to use placeholders with regular expressions to help you test input or output that varies. For example:, (*6)

  Scenario: Sending values with placeholders
    Given a file named "features/send_values.feature" with:
      """
      Feature: Exercise WebApiContext data sending
        In order to validate the send request step
        As a context developer
        I need to be able to send a request with values in a scenario

        Scenario:
          When I send a POST request to "echo" with values:
          | name | name |
          | pass | pass |
          Then the response should contain "POST"
          And the response should contain json:
          '''
          {
          "name" : "name",
          "pass": "%[a-z]+%"
          }
          '''
      """
    When I run "behat features/send_values.feature"
    Then it should pass with:
      """
      ...

      1 scenario (1 passed)
      """

It is common for APIs to return responses with dynamic content. UUIDs, timestamps, generated passwords, etc. All of those, unfortunately, make writing scenarios a bit challenging. With placeholders, you can easily test by using regular expressions to ensure they are returned in a valid format, but can still be variable., (*7)

Other examples of placeholders:, (*8)

{
  "timestamp": "%^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{2,}[\\-\\+][0-9]{2}:[0-9]{2}$%",
  "uuid": "%^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$%"
}

Tests

$ composer install
$ php -S 0.0.0.0:8080 -t testapp &
$ vendor/bin/behat -f progress

Copyright (c) 2014 Konstantin Kudryashov (ever.zet). See LICENSE for details., (*9)

Contributors

The Versions

13/03 2017

dev-master

9999999-dev

Fork of behat/web-api-extension with a few changes for Linio needs

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

api test behat

13/03 2017

2.0.0

2.0.0.0

Fork of behat/web-api-extension with a few changes for Linio needs

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

api test behat

27/10 2015

1.2.3

1.2.3.0

Fork of behat/web-api-extension with a few changes for Linio needs

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

api test behat

11/08 2015

1.2.2

1.2.2.0

Fork of behat/web-api-extension with a few changes for Linio needs

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

api test behat

22/07 2015

1.2.1

1.2.1.0

Fork of behat/web-api-extension with a few changes for Linio needs

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

api test behat

25/06 2015

1.2.0

1.2.0.0

Fork of behat/web-api-extension with a few changes for Linio needs

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

api test behat

21/06 2015

1.1.0

1.1.0.0

Fork of behat/web-api-extension with a few changes for Linio needs

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

api test behat

26/05 2015

1.0.0

1.0.0.0

Fork of behat/web-api-extension with a few changes for Linio needs

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

api test behat