go test单元测试技巧

栏目: 编程工具 · 发布时间: 6年前

内容简介:周五在做首先,绝对不能做的事:我目前是在

起因

周五在做 go test 测试时,碰到个问题,我要对一个 xxx 函数写测试样例,然而它的首字母是小写的,没有导出,单元测试过不去,而这个 xxx 函数外面还有一个 YYY 函数首字母是大写的,但要经过很长的逻辑才能到 xxx 函数。这时我又要完成对 xxx 函数进行测试,又不想经过 YYY 函数走逻辑,该怎么办呢?

实现过程

首先,绝对不能做的事:

  • xxx 函数改为首字母大写的 Xxx 函数

    原因:很多地方都在调这个函数,你改了这一处只满足你这次的测试,那其他基本业务流程也就崩了。

我目前是在 test 文件夹里新建了一个 xxx_test.go 测试文件,样子长这样

package test

func Testxxx(t testing.T){
    control.XXX()
}

由于 xxx 函数是在 control 包里,因此我要在 control 包下建一个 export.go 文件

package control

var XXX = xxx

然后执行 go test 命令,它会遍历 control 包下的所有文件,这时 export.go 文件 里的 var XXX = xxx 就起到了一个桥梁作用。

这时测试的时候就不需要再经过 YYY 的逻辑走到 xxx 函数里面。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

我++

我++

威廉·J·米切尔 / 刘小虎等 / 中国建筑工业出版社 / 2006-6 / 50.00元

随着《我++——电子自我和互联城市》(Me++:The Cyborg Self And The Networked City)的出版,《比特之城》(City Of Bits)和《E-托邦》(E-topia)的作者完成了一套检验信息技术在日常生活中之衍生的非正式三部曲。威廉·J·米切尔描述了自马可尼以后的百年间无线技术的发展变化:网络的不断扩大,发送和接受装置的不断缩小。正如他所说,这就像“大人国重......一起来看看 《我++》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具