承接 linio/behat-web-api-extension 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

linio/behat-web-api-extension

最新稳定版本:3.1.0

Composer 安装命令:

composer require linio/behat-web-api-extension

包简介

Maintained fork of behat/web-api-extension with extensions and support.

README 文档

README

Latest Stable Version License Build Status

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.

Usage

Just add to your composer development dependencies:

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

And activate your extension:

# 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.

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:

  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.

Other examples of placeholders:

{
  "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

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

Contributors

统计信息

  • 总下载量: 176.76k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 110
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2015-05-28