goconvey调研学习

goconvey是golang的测试框架

goconvey调研及学习goconvey概述安装快速开始:浏览器中查看测试结果goconvey的使用场景1、example_test2、bowling_game3、 assertion_example_test.go总结

goconvey调研及学习

goconvey概述

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

  • 集成go test

  • 可读的,带色彩的控制台输出

  • 全自动Web UI

  • 大量的回归测试套件

  • 测试代码生成

安装

go get github.com/smartystreets/goconvey

快速开始:

package package_name

import (
    "testing"
    . "github.com/smartystreets/goconvey/convey"
)

func TestSpec(t *testing.T) {

    // Only pass t into top-level Convey calls
    Convey("Given some integer with a starting value", t, func() {
        x := 1

        Convey("When the integer is incremented", func() {
            x++

            Convey("The value should be greater by one", func() {
                So(x, ShouldEqual, 2)
            })
        })
    })
}

浏览器中查看测试结果

运行:

要是再windows中就去该路径下双击exe文件 浏览器访问:http://localhost:8080/ 就可以看到convey界面啦

当你的测试文件在哪个地址是就修改圈出来的文件目录,然后点击右侧的刷新,他自动会跑test,然后输出结果。

goconvey的使用场景

每个使用场景加上代码详细讲解

1、example_test

这边就一些简单的断言测试,对一个变量加减,用ShouldNotEqual和ShouldEqual来判断,当然还有更多的判断条件:

2、bowling_game

bowling_game.go

bowling_game_test.go

这边的测试涉及到了具体的函数。但是没有对其中的函数进行打桩。我不知道

3、 assertion_example_test.go

这边包含了很多断言的测试。

总结

在我看来,goconvey只是用来做一些简单的断言测试的,不能用来对函数打桩。简单测试可以,复杂点的测试需要和其他测试框架一起使用才能体现出测试效果。convey测试的小技巧,摘自下面的参考文章:

  • import goconvey包时,前面加点号".",以减少冗余的代码

  • 测试函数的名字必须以Test开头,而且参数类型必须为“*testing.T”

  • 每个测试用例必须使用Convey函数包裹起来,推荐使用Convey语句的嵌套,即一个函数有一个测试函数,测试函数中嵌套两级Convey语句,第一级Convey语句对应测试函数,第二级Convey语句对应测试用例

  • Convey语句的第三个参数习惯以闭包的形式实现,在闭包中通过So语句完成断言

  • 使用GoConvey框架的 Web 界面特性,作为命令行的补充

  • 在适当的场景下使用SkipConvey函数或SkipSo函数

  • 当测试中有需要时,可以定制断言函数

参考文章: [1]https://www.jianshu.com/p/e3b2b1194830 [2]https://www.yuque.com/fz420/golang/tcxft4

最后更新于

这有帮助吗?