Go为何需要test测试用例
软件项目开发过程中需要写一些函数解决某一问题,这时候就需要考虑函数是否可以正确运行,是否能实现预期结果,函数代码质量等问题。那么如何函数是否符合这些要求呢?这时候就需要对函数进行全面的单元测试。单元测试的重点在于发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决,而性能测试的重点在于发现程序设计上的一些问题,让线上的程序能够在高并发的情况下还能保持稳定。
本小节将详细讲解Golang语言中如何来实现单元测试和性能测试。
Go语言中自带有一个轻量级的测试框架testing
和自带的go test
命令来实现单元测试和性能测试,testing
框架和其他语言中的测试框架类似,你可以基于这个框架写针对相应函数的测试用例,也可以基于该框架写相应的压力测试用例,那么接下来让我们一一来看一下怎么写。
另外建议安装gotests插件自动生成测试代码:
go get -u -v github.com/cweill/gotests/...
测试用例编写介绍
由于go test
命令只能在一个相应的目录下执行所有文件,所以我们接下来新建一个项目目录gotest
,这样我们所有的代码和测试代码都在这个目录下。
接下来我们在该目录下面创建两个文件:gotest.go和gotest_test.go
1、 gotest.go:这个文件在我们创建的gotest
包里面,里面有一个函数实现了除法运算:
package gotest
import (
"errors"
)
func Division(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("除数不能为0")
}
return a / b, nil
}
2、gotest_test.go:这是我们的单元测试文件,但是记住下面的这些原则:
- 文件名必须是
_test.go
结尾的(文件名必须是*_test.go
的类型,*代表要测试的文件名),这样在执行go test
的时候才