一、介绍

是一款针对Golang的测试框架,可以管理和运行测试用例,同时提供了丰富的断言函数,并支持很多 Web 界面特性。

GoConvey 网站 : http://smartystreets.github.io/goconvey/

GoConvey 支持 go test。可直接在终端窗口和浏览器上使用。

安装

go get github.com/smartystreets/goconvey

#安装中可能会提示golang.org/x/tools/go/packages安装错误,
这里直接去github上下载后,解压到上面提示错误的文件位置
https://github.com/golang/tools/

在$GOPATH/bin目录下新增了GoConvey框架的可执行程序goconvey,运行后就可以访问web的UI界面了

http://localhost:8080/

二、代码

#goconvey_demo.go文件
package goconvey import (
"errors"
) func Add(a, b int) int {
return a + b
} func Subtract(a, b int) int {
return a - b
} func Multiply(a, b int) int {
return a * b
} func Division(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("被除数不能为 0")
}
return a / b, nil
} func SquareSubtract(a, b int) int {
return a*a + b*b
}
#goconvey_text.go注意必须以_test结尾的文件名
package goconvey import (
"testing" . "github.com/smartystreets/goconvey/convey"
) func TestAdd(t *testing.T) {
Convey("将两数相加", t, func() {
So(Add(1, 2), ShouldEqual, 3)
})
} func TestSubtract(t *testing.T) {
Convey("将两数相减", t, func() {
So(Subtract(1, 2), ShouldEqual, -1)
})
} func TestMultiply(t *testing.T) {
Convey("将两数相乘", t, func() {
So(Multiply(3, 2), ShouldEqual, 6)
})
} func TestDivision(t *testing.T) {
Convey("将两数相除", t, func() { Convey("除以非 0 数", func() {
num, err := Division(10, 2)
So(err, ShouldBeNil)
So(num, ShouldEqual, 5)
}) Convey("除以 0", func() {
_, err := Division(10, 0)
So(err, ShouldNotBeNil)
})
})
} func TestSquareSubtract(t *testing.T) {
Convey("将两数平方相加",t, func() {
So(SquareSubtract(5,6),ShouldEqual,61)
})
}

打开命令行,然后输入 go test -v 来进行测试

#测试结果
=== RUN TestAdd 将两数相加 . 1 total assertion --- PASS: TestAdd (0.00s)
=== RUN TestSubtract 将两数相减 . 2 total assertions --- PASS: TestSubtract (0.00s)
=== RUN TestMultiply 将两数相乘 . 3 total assertions --- PASS: TestMultiply (0.00s)
=== RUN TestDivision 将两数相除
除以非 0 数 ..
除以 0 . 6 total assertions --- PASS: TestDivision (0.00s)
=== RUN TestSquareSubtract 将两数平方相加 . 7 total assertions --- PASS: TestSquareSubtract (0.00s)
PASS
ok awesomeProject/goconvey 0.658s

最新文章

  1. Maven和Gradle对比
  2. Java开发规范摘录
  3. 一个页面中显示多个button时总行数计算公式。
  4. Flash Builder 4.7 破解
  5. JS练习题1共7题
  6. Duilib技巧:背景图片平铺
  7. 1.后台如何获取 jquery get方式的ajax的参数
  8. WWF3控制流程类型活动<第二篇>
  9. 利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备
  10. hunnu---11547 你的组合数学学得如何?
  11. Search Bar 去掉背景颜色
  12. java语言内部类和匿名内部类
  13. 小猪Android越来越方式 Day 5 - part 2
  14. Apache自带压力测试工具ab用法简介
  15. Docker入门系列(一):目标和安排
  16. python生成式
  17. Confluence 6 为搜索引擎隐藏外部链接
  18. 整合SpringData JPA
  19. JavaSE学习总结(八)—— 异常处理(Exception)
  20. tensorflow模型在实际上线进行预测的时候,使用CPU工作

热门文章

  1. springmvc Cacheable
  2. Dart编程布尔值
  3. css 布局,过渡
  4. C++——函数模板和类模板
  5. BZOJ 3534: [Sdoi2014]重建(Matrix Tree)
  6. NX二次开发-UFUN编辑添加哪些图层UF_LAYER_edit_category_layer
  7. php 类静态变量 和 常量消耗内存及时间对比
  8. Delphi常用字符串函数
  9. 基于Netty的RPC架构学习笔记(九):自定义序列化协议
  10. java 传入多个参数时报"Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1,..." 解决方案