mcustiel / codeception-http-mock
Extension for HTTP Mock.
Installs: 24 251
Dependents: 1
Suggesters: 0
Security: 0
Stars: 13
Watchers: 4
Forks: 6
Open Issues: 2
Requires
- php: >=5.4
- codeception/codeception: ^2.1
- internations/http-mock: ^0.8
- mcustiel/php-simple-di: >=1.2.0
Requires (Dev)
- pdepend/pdepend: >=2.0.6
- phing/phing: >=2.12.0
- phploc/phploc: >=2.1.1
- phpmd/phpmd: >=2.3.2
- sebastian/phpcpd: >=2.0.2
- squizlabs/php_codesniffer: >=2.3.4
This package is auto-updated.
Last update: 2024-12-19 09:50:48 UTC
README
This Codeception Extension allows developers and testers to use HttpMock to mock external services when running codeception tests.
codeception-http-mock runs an instance of http-mock before your tests run so they can mock external services. After the tests are finished it will close the connection and turn http-mock off.
See also
Note
http-mock is a nice application but it is very simple and lacks a lot of functionality. If you need a more complete application to mock and stub remote services, please give Phiremock a try. Phiremock also has a nice codeception extension.
Installation
Composer:
This project is published in packagist, so you just need to add it as a dependency in your composer.json:
"require": { // ... "mcustiel/codeception-http-mock": "*" }
If you want to access directly to this repo, adding this to your composer.json should be enough:
{ "repositories": [ { "type": "vcs", "url": "https://github.com/mcustiel/codeception-http-mock" } ], "require": { "mcustiel/codeception-http-mock": "dev-master" } }
Or just download the release and include it in your path.
Configuration Example
Extension
# codeception.yml extensions: enabled: - Codeception\Extension\HttpMock config: Codeception\Extension\HttpMock: port: 18080 # defaults to http-mock default port host: name.for.my.server # defaults to http-mock default host
Module
# acceptance.yml modules: enabled: - HttpMock
How to use
Prepare your application
First of all, configure your application so when it is being tested it will replace its external services with http-mock. For instance, if you make some requests to a REST service located under http://your.rest.interface, replace that url in configuration with the host yoy set up in http-mock extension configuration.
Write your tests
// YourCest.php class YourCest extends \Codeception\TestCase\Test { // tests public function tryToTest(\AcceptanceTester $I) { $I->expectRequest()->when() ->methodIs('GET') ->pathIs('/foo') ->then() ->body('mocked body') ->end(); $I->doNotExpectAnyOtherRequest(); $response = file_get_contents('http://localhost:28080/foo'); $I->assertEquals('mocked body', $response); } }