http_mock_adapter
is a simple to use mocking package for Dio intended to be used in tests. It provides various types and methods to declaratively mock request-response communication.
Here is a very basic usage scenario:
import 'package:dio/dio.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
void main() async {
//// Exact body check
// final dio = Dio(BaseOptions(contentType: Headers.jsonContentType));
// dioAdapter = DioAdapter(
// dio: dio,
// matcher: const FullHttpRequestMatcher(needsExactBody: true),
// );
// Basic setup
final dio = Dio(BaseOptions());
final dioAdapter = DioAdapter(dio: dio);
const path = 'https://example.com';
dioAdapter.onGet(
path,
(server) => server.reply(
200,
{'message': 'Success!'},
// Reply would wait for one-sec before returning data.
delay: const Duration(seconds: 1),
),
);
final response = await dio.get(path);
print(response.data); // {message: Success!}
}
The intended usage domain is in tests when trying to simulate behavior of request-response communication with a server. The example portrays a decent use case of how one might make good use of the package.
You can quickly install the package from the command-line:
With dart
:
$ dart pub add --dev http_mock_adapter
...
With flutter
:
$ flutter pub add --dev http_mock_adapter
...
Add this to your package's pubspec.yaml
file:
dev_dependencies:
http_mock_adapter: ^0.6.1
You can then install the package from the command-line:
With dart
:
$ dart pub get
...
With flutter
:
$ flutter pub get
...
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:http_mock_adapter/http_mock_adapter.dart';
All notable changes to this project will be documented in the CHANGELOG.md file.
See the AUTHORS file for information regarding the authors of the project.
http-mock-adapter is licensed under the permissive MIT License (LICENSE).
Made with contrib.rocks.
For information regarding contributions, please refer to CONTRIBUTING.md file.