dio_mock_interceptor 1.1.0 dio_mock_interceptor: ^1.1.0 copied to clipboard
This widget help you to mock backend responses in flutter project.
Flutter Dio Mock Interceptor #
This widget help you to mock backend responses in flutter project.
Environment #
The widget was only tested on following environment,
- Flutter: 3.7.5+ (with sound null safety)
- Dio: 5.0.0+
Usage #
-
Install:
dev_dependencies: dio_mock_interceptor: ^1.1.0
-
Create a
mock
folder in your project, add json files to mock http responses, example:[ { "path": "/api/login", "method": "POST", "statusCode": 200, "data": { "success": true, "code": "0000", "result": { "test": "test" } } }, { "path": "/api/logout", "method": "POST", "statusCode": 200, "data": {} } ]
-
Setup
mock
folder toassets
section ofpubspec.yaml
:assets: - mock/
-
Add interceptor to Dio:
import 'package:dio_mock_interceptor/dio_mock_interceptor.dart'; dio.interceptors.add(MockInterceptor());
-
Dio post example:
Response response = await dio.post("/api/login"); String json = response.data; if (json.isEmpty) { throw Exception('response is empty'); } Map<String, dynamic> data = jsonDecode(json); bool isSuccess = data['success'] as bool; // true Map<String, dynamic> result = data['result']; // result['test'] = 'test'
-
Mass data example:
[
{
"path": "/api/template/list",
"method": "POST",
"statusCode": 200,
"template": {
"size": 100000,
"content": {
"id": "test${index}",
"name": "name_${index}"
}
}
},
{
"path": "/api/template/nocontent",
"method": "POST",
"statusCode": 200,
"template": {
"size": 1000
}
},
{
"path": "/api/template/nosize",
"method": "POST",
"statusCode": 200,
"template": {
"content": {
"id": "test${index}",
"name": "name_${index}"
}
}
}
]
License #
Copyright (c) 2023-present Yong-Xin Technology Ltd.
This project is licensed under the MIT License - see the LICENSE file for details.