https://github.com/macpaw/behat-http-mock-context
Behat Context Mock HTTP Response in Testing
https://github.com/macpaw/behat-http-mock-context
bdd-tests behat behat-mock-response mock mock-http-data
Last synced: 8 months ago
JSON representation
Behat Context Mock HTTP Response in Testing
- Host: GitHub
- URL: https://github.com/macpaw/behat-http-mock-context
- Owner: MacPaw
- License: mit
- Created: 2021-12-06T14:31:41.000Z (over 4 years ago)
- Default Branch: develop
- Last Pushed: 2025-05-02T20:30:22.000Z (about 1 year ago)
- Last Synced: 2025-08-29T08:45:27.402Z (9 months ago)
- Topics: bdd-tests, behat, behat-mock-response, mock, mock-http-data
- Language: PHP
- Homepage: https://github.com/MacPaw/BehatHttpMockContext
- Size: 101 KB
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
Behat HTTP Mock Context
=================================
| Version | Build Status | Code Coverage |
|:---------:|:-------------:|:-----:|
| `main` | [![CI][main Build Status Image]][main Build Status] | [![Coverage Status][main Code Coverage Image]][main Code Coverage] |
Installation
============
Step 1: Download the Bundle
----------------------------------
Open a command console, enter your project directory and execute:
### Applications that use Symfony Flex [in progress]
```console
$ composer require --dev macpaw/behat-http-mock-context
```
### Applications that don't use Symfony Flex
Open a command console, enter your project directory and execute the
following command to download the latest stable version of this bundle:
```console
$ composer require --dev macpaw/behat-http-mock-context
```
This command requires you to have Composer installed globally, as explained
in the [installation chapter](https://getcomposer.org/doc/00-intro.md)
of the Composer documentation.
Then, enable the bundle by adding it to the list of registered bundles
in the `app/AppKernel.php` file of your project:
```php
['test' => true],
);
// ...
}
// ...
}
```
Step 2: Mock http client
=============
Example you have http client in `config/services.yaml`
```yaml
oauth_http_client:
class: Symfony\Contracts\HttpClient\HttpClientInterface
factory: ['Symfony\Component\HttpClient\HttpClient', createForBaseUri]
arguments:
- '%env(OAUTH_URL)%'
```
Now you need mock this client in `config/services_test.yaml`
```yaml
oauth_http_client:
class: ExtendedMockHttpClient\ExtendedMockHttpClient
arguments:
- '%env(OAUTH_URL)%'
tags: ['mock.http_client']
...
```
Now we ready add build mock collection
```yaml
BehatHttpMockContext\Collection\ExtendedMockHttpClientCollection:
arguments:
- !tagged_iterator mock.http_client
...
```
Step 3: Configure Behat
=============
Go to `behat.yml`
```yaml
...
contexts:
- BehatHttpMockContext\Context\MockContext
...
```
Step 4: How to use:
=============
```
Given I mock "oauth_http_client" HTTP client next response status code should be 200 with body:
"""
{
"success": true,
"response": {
"user_id": 234
}
}
"""
```
[main Build Status]: https://github.com/macpaw/behat-http-mock-context/actions?query=workflow%3ACI+branch%3Amain
[main Build Status Image]: https://github.com/macpaw/behat-http-mock-context/workflows/CI/badge.svg?branch=main
[main Code Coverage]: https://codecov.io/gh/macpaw/behat-http-mock-context/branch/main
[main Code Coverage Image]: https://img.shields.io/codecov/c/github/macpaw/behat-http-mock-context/main?logo=codecov