一,安装用到的库

一,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库做单元测试相关推荐

  1. 使用karma+mocha+chai为vue组件库做单元测试

    前言 单元测试,这一环节对我们的应用的重要性不言而喻,它能很大程度确保我们项目运行的健壮性.因此,前一段时间,笔者公司要求现有的vue搭建的npm组件库做单元测试.之前,笔者对单元测试做过了解,一直想 ...

  2. java项目如何单元测试_大家java web项目开发做单元测试吗?

    java web项目测试用Web的测试工具,如HtmlUnit,JWebUnit等. main()方法就可以测试,在main方法中获得connection对象将他输出就可以了. 如果正常输出一大串就是 ...

  3. 持续集成之单元测试篇——WWH(讲讲我们做单元测试的故事)

    持续集成之单元测试篇--WWH(讲讲我们做单元测试的故事) 前言 临近上线的几天内非重大bug不敢进行发版修复,担心引起其它问题(摁下葫芦浮起瓢) 尽管我们如此小心,仍不能避免修改一些bug而引起更多 ...

  4. python程序设计第七章答案_MOOC课程答案第七章单元测试答案_Python语言程序设计答案免费微信公众号...

    MOOC课程答案第七章单元测试答案_Python语言程序设计答案免费微信公众号 更多相关问题 [问答题,简答题] 什么叫仰视图? [问答题,简答题] 常见事故一般分为? [问答题,简答题] 进行气藏. ...

  5. c语言 单元测试工具 免费下载,雨田单元测试系统(C语言单元测试) 1.0官方版

    雨田单元测试系统(C语言单元测试)是一款适用于C语言文件的单元测试和集成测试系统.可以大幅度提高对C语言测试效率,从而提供软件质量. 雨田单元测试系统介绍 雨田单元测试系统可以针对c语言程序文件进行单 ...

  6. 以下哪一个不属于python语言的特点-Python语言的特点有哪些

    Python语言的特点有哪些 Python 是目前最流行的语言之一,从云计算.大数据到人工智能,Python 无处不在,Python 人才需求量也在逐年攀升,Python 为何能发展如此的迅猛,究竟有 ...

  7. c语言long lomg,C语言程序设计-中国大学mooc-题库零氪

    第1次 实践课预备(Microsoft Visual C++6.0 简单操作) Microsoft Visual C++6.0 简单操作 及 hello.cpp随堂测验 1.输出"I LOV ...

  8. 【Golang】一篇文章带你快速了解Go语言为什么你要学习Go语言

    目录 1. 为什么互联网世界需要Go语言 1.1 硬件限制:摩尔定律已然失效 1.2 Go语言为并发而生 1.3 Go性能强悍 1.4 Go语言简单易学 1.4.1 语法简洁 1.4.2 代码风格统一 ...

  9. 为什么除了Go语言, 其他类C语言都是垃圾[翻译][转]

    2019独角兽企业重金招聘Python工程师标准>>> 英文原文: http://www.syntax-k.de/projekte/go-review 原始翻译: http://ww ...

最新文章

  1. TaintDroid介绍
  2. jquery 实现仿QQ右下角弹出框
  3. 合成大西瓜html源码,index.html
  4. mysql session大小写_mysql的大小写敏感性
  5. api 规则定义_API有规则,而且功能强大
  6. 【文章】工作之余,放松心情
  7. 车模型一般多少钱_婚车租赁一般多少钱?最新婚车出租价格表!
  8. Linux_快速查找文件
  9. 认证Authentication
  10. java如何求上个月的最后一天是多少号_JAVA入门题
  11. IAR的基本使用教程
  12. Python文件指针
  13. android 小米申请root权限,小米root权限获取教程
  14. 你真的会做交付文档了吗?
  15. 七七四十九劫,九九八十一难
  16. javaScript的console
  17. c语言:(指针)输入一行文字,找出其中的大写字母,小写字母,数字,空格以及其他字符
  18. Crawlscrapy获取果壳问答信息
  19. 一文了解C语言与嵌入式C语言的区别
  20. 详细讲解Java并发编程

热门文章

  1. 谷歌地球不显示地球_奇怪的地球问题
  2. Python制作快递查询系统
  3. Linux 文件权限体系详解
  4. 16点建议帮助独立开发者决胜Game Jam
  5. 如何禁止用户安装盗版?
  6. 个人简历计算机水平如何填写,简历如何写计算机水平
  7. Web相关语言、标签、文件类型等英文全称、中文释义总结
  8. 书都买回来了,必须要努力的去学习了!
  9. 光绘文件 c语言 解析,长篇干货 | 光绘摄影,从前期到后期完整解析!
  10. 前端知识每日小拷问 007 MVVM框架相关