如何解决Flutter 如何对 Dio 401、500 个响应进行单元测试 注意:
目前我正在测试 200 个响应如下
final dio = Dio();
final dioAdapter = DioAdapter();
dio.httpClientAdapter = dioAdapter;
const path = 'https://endpoint.com';
test('Loading shows when user taps set up trading account',() async {
dioAdapter
..onPost(
path,(request) => request.reply(204,{}),);
final onGetResponse = await dio.post(path);
when(_tradingAccountService.setUpTradingAccount())
.thenAnswer((realInvocation) => Stream.value(HttpResponse(onGetResponse.data,onGetResponse)));
await signUpViewModel.setUpTradingAccount();
expect(signUpViewModel.isSettingUpTradingAccount,true);
});
但是当我尝试测试 401 或 500 时,dio 抛出 HttpStatusError
final dioError = DioError(
error: {'message': 'Some beautiful error!'},requestOptions: RequestOptions(path: '/foo'),response: Response(
statusCode: 500,),type: DioErrorType.response,);
dioAdapter.onPost(
path,(request) => request.throws(500,dioError),);
我希望做这样的事情
when(_tradingAccountService.setUpTradingAccount())
.thenAnswer((realInvocation) => Stream.value(HttpResponse(204)));
那些没有帮助How create test for dio timeout和 https://github.com/flutterchina/dio/blob/master/dio/test/mock_adapter.dart
解决方法
使用 http_mock_adapter,package 来模拟 state_dict = torch.load('myfile.pth.tar')
print(state_dict)
print(model)
请求。
您可以简单地将注入的 Dio
的 Dio
替换为 http_mock_adapter 的 httpClientAdapter
:
来自 examples 的 http_mock_adapter 的示例
用法
这里是包的基本使用场景(通过DioAdapter()
):
DioAdapter
注意:
There 是一个固定的问题,请在那里查看,我想它会有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。