Skip to main content
drupalreleases

Use direct release data with your AI assistant.

Learn more

HTTP Request Mock

Security covered Under active development 55 sites

This module intercepts outgoing HTTP requests made by Drupal's http_client service during testing. It allows custom plugins to provide mocked responses for these requests, preventing actual external calls and enabling more reliable functional testing.

Inspired by Danny Sipos's (Upchuk) article: https://www.webomelette.com/simple-guzzle-api-mocking-functional-testing...

Description

When running tests, you don't want to perform external HTTP requests while you still want to test code that consumes such webservices. This module intercepts the requests made by the Drupal http_client service and allows a plugin to respond with a mocked response.

Usage

In order to mock a webservice, you'll need to create a service mock plugin. Such a plugin implements the ServiceMockPluginInterface. The plugin manager will pickup the first plugin that matches the HTTP request and will call the plugin's ::getResponse() method. Note that several plugins may qualify for the same request, but you can specify a weight in plugin's attribute so that such plugins are prioritized.

Implement one or more plugins for each webservice that you want to mock. In your tests, enable this module, and the modules that are shipping such plugins. This module ships a testing plugin that intercepts all outgoing HTTP requests made to example.com.

In some cases, tests may narrow the list of plugins to a limited set. Such tests should pass an array of plugin IDs to the http_request_mock.allowed_plugins state variable. Leaving this variable empty or not set, will allow all plugins to apply to the following outgoing HTTP requests.

Drupal 8–11

Ask your assistant about HTTP Request Mock

Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
2
Tracked since
Feb 2023
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 1
Maintenance
Active

Releases

Version Type Core PHP Release date
1.2.0 Stable 8–11 Feb 7, 2025
1.1.0 Stable 8–10 Feb 16, 2023