Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

17 Commits

Repository files navigation

codeception-http-mock

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.ymlextensions:
enabled:
- Codeception\Extension\HttpMockconfig:
Codeception\Extension\HttpMock:
port: 18080# defaults to http-mock default porthost: name.for.my.server # defaults to http-mock default host

Module

# acceptance.ymlmodules:
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.phpclass YourCest extends \Codeception\TestCase\Test
{
// testspublicfunctiontryToTest(\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);
}
}

About

HttpMock extension and module for Codeception.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages