macpaw/behat-http-mock-context

在测试模拟HTTP响应的其他服务时的Behat Context

安装量: 87,749

依赖关系: 0

建议者: 0

安全性: 0

星级: 4

关注者: 4

分支: 1

开放问题: 0

类型:symfony-bundle

v3.0.4 2024-03-15 14:23 UTC

This package is auto-updated.

Last update: 2024-09-15 15:21:00 UTC


README

安装

步骤 1: 下载Bundle

打开命令行,进入您的项目目录并执行

使用Symfony Flex的应用程序[进行中]

$ composer require --dev macpaw/behat-http-mock-context

不使用Symfony Flex的应用程序

打开命令行,进入您的项目目录并执行以下命令以下载此bundle的最新稳定版本

$ composer require --dev macpaw/behat-http-mock-context

此命令要求您已全局安装Composer,如Composer文档中的安装章节中所述。

然后,通过将其添加到项目中app/AppKernel.php文件中注册的bundle列表来启用此bundle

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            BehatHttpMockContext\BehatHttpMockContextBundle::class => ['test' => true],
        );

        // ...
    }

    // ...
}

步骤 2: 模拟HTTP客户端

示例:您在config/services.yaml中已经有了HTTP客户端

    oauth_http_client:
        class: Symfony\Contracts\HttpClient\HttpClientInterface
        factory: ['Symfony\Component\HttpClient\HttpClient', createForBaseUri]
        arguments:
            - '%env(OAUTH_URL)%'

现在您需要在config/services_test.yaml中模拟此客户端

    oauth_http_client:
        class: ExtendedMockHttpClient\ExtendedMockHttpClient
        arguments:
            - '%env(OAUTH_URL)%'
        tags: ['mock.http_client']
...

现在我们准备添加构建模拟集合

    BehatHttpMockContext\Collection\ExtendedMockHttpClientCollection:
        arguments:
            - !tagged_iterator mock.http_client
...

步骤 3: 配置Behat

转到behat.yml

...
  contexts:
    - BehatHttpMockContext\Context\MockContext
...

步骤 4: 如何使用

    Given I mock "oauth_http_client" HTTP client next response status code should be 200 with body:
        """
        {
            "success": true,
            "response": {
                "user_id": 234
            }
        }
        """