httptest

2020,你需掌握go 单元测试进阶篇

大憨熊 提交于 2020-08-06 14:00:17
本文说明go语言自带的测试框架未提供或者未方便地提供的测试方案,主要是用于解决写单元测试中比较头痛的依赖问题。也就是伪造模式,经典的伪造模式有桩对象(stub),模拟对象(mock)和伪对象(fake)。比较幸运的是,社区有丰富的第三方测试框架支持支持。下面就对笔者亲身试用并实践到项目中的几个框架做介绍: 1.gomock gomock模拟对象的方式是让用户声明一个接口,然后使用gomock提供的mockgen工具生成mock对象代码。要模拟(mock)被测试代码的依赖对象时候,即可使用mock出来的对象来模拟和记录依赖对象的各种行为:比如最常用的返回值,调用次数等等。文字叙述有点抽象,直接上代码: dick.go中DickFunc依赖外部对象OutterObj,本示例就是说明如何使用gomock框架控制所依赖的对象。 func DickFunc( outterObj MockInterface,para int )(result int ){ fmt.Println( " This init DickFunc " ) fmt.Println( " call outter.func: " ) return outterObj.OutterFunc(para) } mockgen工具命令是: mockgen -source {source_file}.go -destination

Flutter用dio封装http网络请求,设置统一的请求地址、headers及处理返回内容

筅森魡賤 提交于 2020-04-24 16:11:13
封装http请求是项目中经常需要做的,常用于设置通用请求地址、请求headers以及处理返回结果,例如在项目中开发地址、测试地址、上线地址是不一样的,当在封装的请求设置好默认地址之后只需要改一个地址而不需要每一个接口都去修改,以及统一在headers设置token用来校验身份等。 先来看一下完成后的使用方法把(格式是不是有点像ajax) HttpUtil.get( url, data: { key: value }, headers: {   key: value  } success: (data){ // 请求成功返回的数据 },error: (errorMsg){ // 请求失败返回的错误信息 } );    封装实现 使用dio先在pubspec.yaml添加dio包,然后packages get,获取最新的版本 https://pub.dev/packages/dio dio: ^2.1.7    然后在封装的地方引用它 import 'package:dio/dio.dart';    在页面中先设置一个请求地址 class BaseUrl{ // 配置默认请求地址 static const String url = 'http://127.0.0.1'; }    再建立一个HttpUtil类,把请求方法写在里面,先来实现一下get请求,在方法中写好可接收的参数