golang 自动化测试

更新日期: 2020-04-01 阅读次数: 591 字数: 339 分类: golang

为了提升开发效率,很多时候我只想在终端下敲代码,并执行自动化测试验证。相比,每改一点代码,就打开浏览器手动测试,要节省很多时间,也不容易临时起意去论坛闲逛了。。。

依赖包

import "testing"

测试代码规范

  • 文件名格式:file_test.go
  • 功能测试函数名格式:TestFuction
  • 性能测试函数名格式:BenchmarkFunction,执行命令 go test -bench 时会运行

assert 库

https://github.com/stretchr/testify

内置的 Errorf 写法太啰嗦了,找了一个支持 assert 语法的库。我看 golang gin 框架中就是用的这个库。

示例代码:

request_test.go

package utils

import (
	"github.com/stretchr/testify/assert"
	"testing"
)

func TestIsMobile(t *testing.T) {
	pcAgent := "HTTP USER AGENT: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"
	mobileAgent := "HTTP USER AGENT: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
	assert.Equal(t, IsMobile(pcAgent), false)
	assert.Equal(t, IsMobile(mobileAgent), true)
}

go test -v 与 go test 输出信息上有什么区别

> go test -v
=== RUN   TestIsMobile
--- PASS: TestIsMobile (0.00s)
PASS
ok      sunzhongwei.com/go_tool/utils   0.027s

> go test
PASS
ok      sunzhongwei.com/go_tool/utils   0.027s

测试案例不通过会提示什么

> go test
--- FAIL: TestIsMobile (0.00s)
    request_test.go:12:
                Error Trace:    request_test.go:12
                Error:          Not equal:
                                expected: false
                                actual  : true
                Test:           TestIsMobile
FAIL
exit status 1
FAIL    sunzhongwei.com/go_tool/utils   0.027s

更多

参考

https://golang.org/pkg/testing/

领取618阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

tags: golang 自动化测试 golang assert.Equal

相关文章

爱评论不评论

近期节日

2020年06月11日 中国人口日
2020年06月20日 世界难民日
2020年06月21日 父亲节
2020年06月21日 夏至
2020年06月22日 中国儿童慈善活动日
2020年06月23日 国际奥林匹克日
2020年06月25日 全国土地日
2020年06月25日 端午节
2020年06月26日 国际禁毒日
2020年06月30日 世界青年联欢节
2020年07月01日 中国共产党诞生日
2020年07月01日 香港回归日
查看更多节日