go语言单元测试之三:go语言用goconvey库做单元测试
一,安装用到的库
一,goconvey库的代码地址
https://github.com/smartystreets/goconvey
2,从命令行安装
liuhongdi@ku:~$ go get -u github.com/smartystreets/goconvey
说明:刘宏缔的go森林是一个专注golang的博客,
网站:https://blog.imgtouch.com
原文: go语言单元测试之三:go语言用goconvey库做单元测试 – 架构森林
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,演示项目相关信息
1,地址:
https://github.com/liuhongdi/unittest02
2,功能说明:演示了用goconvey做单元测试的assert
3,项目结构:如图:
三,go代码说明
1,main.go
package main//定义一个加法方法
func Add(a, b int) int {return a + b
}
2,main_test.go
package mainimport ("strconv""testing". "github.com/smartystreets/goconvey/convey"
)
//测试add方法
func TestAdd(t *testing.T) {//列出要测试的参数和返回结果cases := []struct {first intsecond intexcepted int}{{1, 2, 3},{1, 3, 4},{2, 2, 4},}//遍历,进行测试for _, c := range cases {result := Add(c.first, c.second)if result != c.excepted {t.Fatalf("add function failed, first: %d, second:%d, execpted:%d, result:%d", c.first, c.second, c.excepted, result)}}
}
//测试add方法,convey
func TestAddConvey(t *testing.T) {//列出要测试的参数和返回结果cases := []struct {first intsecond intexcepted int}{{1, 2, 3},{1, 3, 4},{2, 2, 4},}//遍历,进行测试for _, c := range cases {Convey("测试加和结果", t, func() {So(Add(c.first, c.second), ShouldEqual,c.excepted)})}
}//测试add方法,convey嵌套
func TestAddConveyNest(t *testing.T) {//列出要测试的参数和返回结果cases := []struct {first intsecond intexcepted int}{{1, 2, 3},{2, 3, 4},{2, 2, 4},}Convey("开始一组测试加和结果", t, func() {//遍历,进行测试for _, c := range cases {Convey("加和测试:"+strconv.Itoa(c.first)+"+"+strconv.Itoa(c.second), func() {So(Add(c.first, c.second), ShouldEqual,c.excepted)})}})
}
四,测试效果:
在项目目录下执行:
root@ku:/data/go/unittest02# go test -v ./...
返回:
出错时的显示:
五,查看库的版本:
module github.com/liuhongdi/unittest02go 1.15require (github.com/smartystreets/goconvey v1.6.4
)
go语言单元测试之三:go语言用goconvey库做单元测试相关推荐
- 使用karma+mocha+chai为vue组件库做单元测试
前言 单元测试,这一环节对我们的应用的重要性不言而喻,它能很大程度确保我们项目运行的健壮性.因此,前一段时间,笔者公司要求现有的vue搭建的npm组件库做单元测试.之前,笔者对单元测试做过了解,一直想 ...
- java项目如何单元测试_大家java web项目开发做单元测试吗?
java web项目测试用Web的测试工具,如HtmlUnit,JWebUnit等. main()方法就可以测试,在main方法中获得connection对象将他输出就可以了. 如果正常输出一大串就是 ...
- 持续集成之单元测试篇——WWH(讲讲我们做单元测试的故事)
持续集成之单元测试篇--WWH(讲讲我们做单元测试的故事) 前言 临近上线的几天内非重大bug不敢进行发版修复,担心引起其它问题(摁下葫芦浮起瓢) 尽管我们如此小心,仍不能避免修改一些bug而引起更多 ...
- python程序设计第七章答案_MOOC课程答案第七章单元测试答案_Python语言程序设计答案免费微信公众号...
MOOC课程答案第七章单元测试答案_Python语言程序设计答案免费微信公众号 更多相关问题 [问答题,简答题] 什么叫仰视图? [问答题,简答题] 常见事故一般分为? [问答题,简答题] 进行气藏. ...
- c语言 单元测试工具 免费下载,雨田单元测试系统(C语言单元测试) 1.0官方版
雨田单元测试系统(C语言单元测试)是一款适用于C语言文件的单元测试和集成测试系统.可以大幅度提高对C语言测试效率,从而提供软件质量. 雨田单元测试系统介绍 雨田单元测试系统可以针对c语言程序文件进行单 ...
- 以下哪一个不属于python语言的特点-Python语言的特点有哪些
Python语言的特点有哪些 Python 是目前最流行的语言之一,从云计算.大数据到人工智能,Python 无处不在,Python 人才需求量也在逐年攀升,Python 为何能发展如此的迅猛,究竟有 ...
- c语言long lomg,C语言程序设计-中国大学mooc-题库零氪
第1次 实践课预备(Microsoft Visual C++6.0 简单操作) Microsoft Visual C++6.0 简单操作 及 hello.cpp随堂测验 1.输出"I LOV ...
- 【Golang】一篇文章带你快速了解Go语言为什么你要学习Go语言
目录 1. 为什么互联网世界需要Go语言 1.1 硬件限制:摩尔定律已然失效 1.2 Go语言为并发而生 1.3 Go性能强悍 1.4 Go语言简单易学 1.4.1 语法简洁 1.4.2 代码风格统一 ...
- 为什么除了Go语言, 其他类C语言都是垃圾[翻译][转]
2019独角兽企业重金招聘Python工程师标准>>> 英文原文: http://www.syntax-k.de/projekte/go-review 原始翻译: http://ww ...
最新文章
- TaintDroid介绍
- jquery 实现仿QQ右下角弹出框
- 合成大西瓜html源码,index.html
- mysql session大小写_mysql的大小写敏感性
- api 规则定义_API有规则,而且功能强大
- 【文章】工作之余,放松心情
- 车模型一般多少钱_婚车租赁一般多少钱?最新婚车出租价格表!
- Linux_快速查找文件
- 认证Authentication
- java如何求上个月的最后一天是多少号_JAVA入门题
- IAR的基本使用教程
- Python文件指针
- android 小米申请root权限,小米root权限获取教程
- 你真的会做交付文档了吗?
- 七七四十九劫,九九八十一难
- javaScript的console
- c语言:(指针)输入一行文字,找出其中的大写字母,小写字母,数字,空格以及其他字符
- Crawlscrapy获取果壳问答信息
- 一文了解C语言与嵌入式C语言的区别
- 详细讲解Java并发编程