go mockweb接口_Go单元测试mock大法

gomonkey是golang的一种打桩框架,目标是让用户在单元测试中低成本完成打桩,从而将经历聚焦于业务功能的开发。gomonkey接口友好,功能强大。另外,goconvey是一种针对golang的测试框架,可以管理和运行测试用例,同时提供了丰富的断言函数,支持多WEB界面特性。

gomonkey适用场景如下:支持为一个函数打一个桩

支持为一个成员方法打一个桩

支持为一个全局变量打一个桩

支持为一个函数变量打一个桩

支持为一个函数打一个特定的桩序列

支持为一个成员方法打一个特定的桩序列

支持为一个函数变量打一个特定的桩序列

下载

gomonkey以及goconvey下载方法:

go get github.com/agiledragon/gomonkey

go get github.com/smartystreets/goconvey

ApplyFunc

接口定义:

func ApplyFunc(target, double interface{}) *Patches

ApplyFunc 第一个参数是函数名,第二个参数是桩函数。测试完成后,patches 对象通过 Reset 成员方法删除所有测试桩。待补充示例

ApplyMethod

接口定义:

func ApplyMethod(target reflect.Type, methodName string, double interface{}) *Patches

ApplyMethod 第一个参数是目标类的指针变量的反射类型,第二个参数是字符串形式的方法名,第三个参数是桩函数。测试完成后,patches 对象通过 Reset 成员方法删除所有测试桩。待补充示例

ApplyGlobalVar

接口定义:

func ApplyGlobalVar(target, double interface{}) *Patches

ApplyGlobalVar 第一个参数是全局变量的地址,第二个参数是全局变量的桩。测试完成后,patches 对象通过 Reset 成员方法删除所有测试桩。待补充示例

ApplyFuncVar

接口定义:

func ApplyFuncVar(target, double interface{}) *Patches

ApplyFuncVar 第一个参数是函数变量的地址,第二个参数是桩函数。测试完成后,patches 对象通过 Reset 成员方法删除所有测试桩。待补充示例

ApplyFuncSeq

接口定义:

func ApplyFuncSeq(target interface{}, outputs []OutputCell) *Patches

OutputCell定义如下:

type Params []interface{}

type OutputCell struct {

Values Params

Times int

}

ApplyFuncSeq 第一个参数是函数名,第二个参数是特定的桩序列参数。测试完成后,patches 对象通过 Reset 成员方法删除所有测试桩。待补充示例

ApplyMethodSeq

接口定义:

func ApplyMethod(target reflect.Type, methodName string, double interface{}) *Patches

ApplyMethodSeq 第一个参数是目标类的指针变量的反射类型,第二个参数是字符串形式的方法名,第三参数是特定的桩序列参数。测试完成后,patches 对象通过 Reset 成员方法删除所有测试桩。待补充示例

ApplyFuncVarSeq

接口定义:

func ApplyFuncVarSeq(target interface{}, outputs []OutputCell) *Patches

ApplyFuncVarSeq 第一个参数是函数变量地址,第二个参数是特定的桩序列参数。测试完成后,patches 对象通过 Reset 成员方法删除所有测试桩。待补充示例

sqlmock使用

比如sql中的query方法,ApplyMethod方法打桩的话,需要重新写query。目前开发底层都使用"http://github.com/go-sql-driver/mysql"数据库,都能够使用sqlmock库进行mock。

下载sqlmock

go get github.com/DATA-DOG/go-sqlmock待补充示例

参考文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值