首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Flutter如何对Dio401,500响应进行单元测试

Flutter如何对Dio401,500响应进行单元测试
EN

Stack Overflow用户
提问于 2021-04-30 11:07:43
回答 1查看 567关注 0票数 0

目前我正在测试200个响应,如下所示

代码语言:javascript
运行
AI代码解释
复制
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

代码语言:javascript
运行
AI代码解释
复制
 final dioError = DioError(
        error: {'message': 'Some beautiful error!'},
        requestOptions: RequestOptions(path: '/foo'),
        response: Response(
          statusCode: 500,
          requestOptions: RequestOptions(path: '/foo'),
        ),
    type: DioErrorType.response,
  );

  dioAdapter.onPost(
    path,
    (request) => request.throws(500, dioError),
  );

我希望能做这样的事情

代码语言:javascript
运行
AI代码解释
复制
 when(_tradingAccountService.setUpTradingAccount())
          .thenAnswer((realInvocation) => Stream.value(HttpResponse(204)));

这些对How create test for dio timeouthttps://github.com/flutterchina/dio/blob/master/dio/test/mock_adapter.dart都没有帮助

EN

回答 1

Stack Overflow用户

发布于 2021-05-24 10:09:43

使用http_mock_adapter,用于模拟Dio请求的包。

您可以简单地将注入的DiohttpClientAdapter替换为DioAdapter() of http_mock_adapter

来自http_mock_adapterexamples的示例

用法

以下是该包的基本使用场景(通过DioAdapter):

代码语言:javascript
运行
AI代码解释
复制
import 'package:dio/dio.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';

void main() async {
  final dio = Dio();
  final dioAdapter = DioAdapter();

  dio.httpClientAdapter = dioAdapter;

  const path = 'https://example.com';

  dioAdapter
      ..onGet(
        path,
        (request) => request.reply(200, {'message': 'Successfully mocked GET!'}),
      )
      ..onGet(
        path,
        (request) => request.reply(200, {'message': 'Successfully mocked POST!'}),
      );

  final onGetResponse = await dio.get(path);
  print(onGetResponse.data); // {message: Successfully mocked GET!}

  final onPostResponse = await dio.post(path);
  print(onPostResponse.data); // {message: Successfully mocked POST!}
}

注意:

There是一个修复的问题,请看一看那里,我想它会有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67332840

复制
相关文章
MongoDB:如何将 BSON 文档转换为可读的格式
二进制 Javascript 对象表示法 (BSON) 是 JSON 文档的二进制编码序列化。JSON 更易于理解,因为它是人类可读的,但与 BSON 相比,它支持的数据类型更少。BSON 已扩展为添加一些可选的非 JSON 原生数据类型,例如日期和二进制数据。
用户4235284
2023/10/14
1.3K0
Python如何将GrADs常用文件转换为NetCDF格式?
测试数据分享 链接:https://pan.baidu.com/s/1mj1-YpvQN414crNz32f8GA 提取码:wmfr
气象学家
2022/01/18
1.9K0
Python如何将GrADs常用文件转换为NetCDF格式?
Python如何将GrADs常用文件转换为NetCDF格式?
首先需要确保xgrads库的安装: pip install xgrads Install from github 或者 git clone https://github.com/miniufo/xgrads.git cd xgrads python setup.py install 链接https://github.com/miniufo/xgrads , 有提供示例ctl和dat文件,下面我们是使用的ctl和grd文件转换的,方法类似: #import sys #sys.path.append('/home/gavin/miniconda3/envs/atmpy/lib/python3.8/site-packages') #sys.path from xgrads import CtlDescriptor, open_CtlDataset ds = open_CtlDataset('lst.ctl') ctl = CtlDescriptor(file='lst.ctl') ds.attrs['pdef' ] = 'None' ds.to_netcdf('lst.nc') data = ds.ro1 data.where(data!=ctl.undef).plot(figsize=(9,5), cmap='jet') 以上需要注意两点: 1.如果在jupyter-lab中无法加载xgrads需要手动添加其路径,使用到的是:import sys 2. xgrads存在bug,如果不添加语句ds.attrs['pdef' ] = 'None'会一直报错,无法生成nc文件!
郭好奇同学
2021/08/26
2.9K0
Python如何将GrADs常用文件转换为NetCDF格式?
如何将ipynb转换为html,md,pdf等格式
本文介绍了如何将 Jupyter Notebook(.ipynb 文件)转换为 HTML、Markdown、PDF 和 LaTeX 格式。首先介绍了 Jupyter Notebook 的入门知识,然后介绍了将 Jupyter Notebook 转换为其他格式的方法,包括使用 `jupyter nbconvert` 命令和设置 Jupyter Notebook 模板。此外,还提供了将 Jupyter Notebook 转换为 PDF 和 LaTeX 格式的方法,以及使用 ipython 命令行工具直接将 Jupyter Notebook 转换为 PDF 格式的方法。
红色石头
2017/12/28
8.4K0
如何将ipynb转换为html,md,pdf等格式
php格式怎么转换为pdf,PHP如何将将word文件转为pdf
PHP将word文件转为pdf的方法:首先修改【php.ini】,并重启环境;然后安装微软office套件;最后配置office组件服务即可。
全栈程序员站长
2022/08/26
5.5K0
php格式怎么转换为pdf,PHP如何将将word文件转为pdf
如何将ownCloud转换为Nextcloud
ownCloud的核心开发团队中一部分人员启动了一个名为Nextcloud的项目。虽然ownCloud将继续开发,但您可能想了解新项目的功能。Nextcloud和ownCloud共享一个公共代码库,这意味着将现有的ownCloud安装迁移到Nextcloud中。
小铁匠米兰的v
2018/08/02
2.7K0
如何将Array转换为List?
可以使用 Arrays.asList() 方法, 该方法接受一个数组作为输入,并返回一个列表作为输出。
程序你好
2018/07/23
1.5K0
java如何将String转换为enum
已知枚举对应的String值,希望得到对应的枚举值。例如,已知"A",希望得到对应的枚举——Blah.A,应该怎么做? Enum.valueOf()是否能实现以上目的,如果是,那我如何使用?
硬核编程
2020/07/23
4K0
Core ML Tools初学者指南:如何将Caffe模型转换为Core ML格式
欢迎来到Core ML教程系列的第二部分。在本教程中,将学习如何设置Python虚拟环境,获取不在Core ML格式裡的数据模型,并将该模型转换为Core ML格式,最后将其集成到应用程式中。强烈建议
iOSDevLog
2018/06/21
1.7K0
如何将视频轻松转换为 GIF
有时看到一条有意思的视频想发到朋友圈,但朋友圈有限制时长,而且也不方便,这时可以把视频转GIF(再做成表情包也可以),再发到朋友圈或者微博(不用像视频一样需要等待审核)。
苏生不惑
2020/02/26
1.9K0
如何将pdf转换为word 2.0
再次以《新冠肺炎诊疗方案(试行第七版)》为例,该文件为图片性pdf,文字不可复制。
生信菜鸟团
2020/06/04
2.7K0
Java 如何将 List 转换为 MAP
上面的代码将会把 Id 作为 Key,然后生成的 Map 是以 id 为 Key,Animal 为Value 的 Map。
HoneyMoose
2022/10/12
2.1K0
Java 如何将 List 转换为 MAP
如何将pdf转换为word 3.0
相对于封装的软件,python和R的操作需要稍微折腾一下。浏览论坛的时候的发现了一款轻量级程序,尝试了一下还不错,看一下转换的效果:
生信菜鸟团
2020/08/04
1.8K0
如何将pdf转换为word 3.0
java如何将String转换为Int
Short.valueOf/parseShort, Long.valueOf/parseLong等也是有类似差别。
硬核编程
2020/07/23
1.7K0
如何将 JSON 转换为有序判断?
JSON(JavaScript Object Notation)是系统之间数据交换的流行格式。它是一种轻量级、基于文本且易于解析的格式,已成为互联网上数据交换的标准。但是,JSON 不会为数据结构中的元素提供任何顺序。虽然这在大多数情况下可能不是问题,但在某些情况下,元素的顺序很重要。
很酷的站长
2023/08/11
5790
如何将 JSON 转换为有序判断?
基于双目视觉的树木高度测量方法研究
随着人工智能时代的到来,计算机视觉领域被广泛应用到各个行业中。同样的,人工智能改变着传统林业的研究方法,林业信息工程技术日渐成熟。针对传统树高测量方法中存在的结果准确性不高、操作困难、专业知识转化为规则困难等问题,采用了一种基于双目立体视觉理论计算树高的方法,实现了树木高度的无接触测量。以双目相机作为采集设备,基于MATLAB、VS2015开发平台,采用张正友单平面棋盘格相机标定方法进行单目标定和双目标定,从而获取双目相机2个镜头的参数。通过SGBM算法和BM算法立体匹配后获得视差深度图像,进而获取树木关键点的三维坐标信息并以此来计算树木高度。将深度学习与双目视觉相结合可以实现树木同时在二维和三维空间的信息提取。在VS2015上的试验结果表明,该方法操作相对简单,并且能够较为准确地测量树木高度,SGBM算法树高测量结果的相对误差范围为0.76%~3.93%,BM算法相对误差范围为0.29%~3.41%。结果表明:采用双目视觉技术测量树木高度可以满足林业工程中对于树高测量的精度需要。
Color Space
2022/05/26
1.7K0
基于双目视觉的树木高度测量方法研究
[1154]如何将字符串转换为datetime
1.把datetime转成字符串: 2017-11-23 17:05:18 2.把字符串转成datetime: 2017-11-23 16:10:10 3.把字符串转成时间戳形式: 1511424610.0 4.把时间戳转成字符串形式: 2017-11-23 17:05:18 5.把datetime类型转外时间戳形式: 1511427918.0
周小董
2022/07/27
3.6K0
mysql整型转字符串_java中如何将字符串转换为字符数组
select * from A order by cast(name as unsigned);
全栈程序员站长
2022/09/27
24.5K0
将VOC格式的数据集转换为COCO格式
import xml.etree.ElementTree as ETimport osimport json coco = dict()coco['images'] = []coco['type'] = 'instances'coco['annotations'] = []coco['categories'] = [] category_set = dict()image_set = set() category_item_id = -1image_id = 20180000000annotation_id
狼啸风云
2021/06/09
3.3K0
mat格式数据集转换为arff与txt格式
下面的代码给出了将mat格式数据集转换为arff与txt格式的matlab代码。 注意,每个.mat文件中只有一个数据集,其中共有m+1列,最后一列是label。 转为arff: mat2arff.m代码 MATLAB % % This function is used to convert the input data to '.arff' % file format,which is compatible to weka file format ... % % Parameters: % input_
里克贝斯
2021/05/21
9910

相似问题

数字格式:如何将1转换为"01",2转换为"02“等?

50

如何将MySQL转储转换为Server格式

13

测量高度

34

格式:如何将1转换为“01”,如何将2转换为“02”,如何将3转换为"03",依此类推

33

将统一转换为卷曲

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档