testing - 测试基本使用接口
2015-01-20 18:49
316 查看
testing - 测试基本使用接口
当你写完一个函数,结构体,main之后,你下一步需要的就是测试了。testing包提供了很简单易用的测试包。写一个基本的测试用例
测试文件的文件名需要以_test.go为结尾,测试用例需要以TestXxxx的样式存在。比如我要测试utils包的sql.go中的函数:
func GetOne(db *sql.DB, query string, args ...interface{}) (map[string][]byte, error) {
就需要创建一个sql_test.go
package utils import ( "database/sql" _ "fmt" _ "github.com/go-sql-driver/mysql" "strconv" "testing" ) func Test_GetOne(t *testing.T) { db, err := sql.Open("mysql", "root:123.abc@tcp(192.168.33.10:3306)/test") defer func() { db.Close() }() if err != nil { t.Fatal(err) } // 测试empty car_brand, err := GetOne(db, "select * from user where id = 999999") if (car_brand != nil) || (err != nil) { t.Fatal("emtpy测试错误") } }
testing的测试用例形式
测试用例有四种形式:TestXxxx(t testing.T) // 基本测试用例
BenchmarkXxxx(b testing.B) // 压力测试的测试用例
Example_Xxx() // 测试控制台输出的例子
TestMain(m *testing.M) // 测试Main函数
给个Example的例子:(Example需要在最后用注释的方式确认控制台输出和预期是不是一致的)
func Example_GetScore() { score := getScore(100, 100, 100, 2.1) fmt.Println(score) // Output: // 31.1 }
testing的变量
gotest的变量有这些:test.short : 一个快速测试的标记,在测试用例中可以使用testing.Short()来绕开一些测试
test.outputdir : 输出目录
test.coverprofile : 测试覆盖率参数,指定输出文件
test.run : 指定正则来运行某个/某些测试用例
test.memprofile : 内存分析参数,指定输出文件
test.memprofilerate : 内存分析参数,内存分析的抽样率
test.cpuprofile : cpu分析输出参数,为空则不做cpu分析
test.blockprofile : 阻塞事件的分析参数,指定输出文件
test.blockprofilerate : 阻塞事件的分析参数,指定抽样频率
test.timeout : 超时时间
test.cpu : 指定cpu数量
test.parallel : 指定运行测试用例的并行数
testing包内的结构
B : 压力测试BenchmarkResult : 压力测试结果
Cover : 代码覆盖率相关结构体
CoverBlock : 代码覆盖率相关结构体
InternalBenchmark : 内部使用的结构
InternalExample : 内部使用的结构
InternalTest : 内部使用的结构
M : main测试使用的结构
PB : Parallel benchmarks 并行测试使用结果
T : 普通测试用例
TB : 测试用例的接口
testing的通用方法
T结构内部是继承自common结构,common结构提供集中方法,是我们经常会用到的:当我们遇到一个断言错误的时候,我们就会判断这个测试用例失败,就会使用到:
Fail : case失败,测试用例继续 FailedNow : case失败,测试用例中断
当我们遇到一个断言错误,只希望跳过这个错误,但是不希望标示测试用例失败,会使用到:
SkipNow : case跳过,测试用例不继续
当我们只希望在一个地方打印出信息,我们会用到:
Log : 输出信息 Logf : 输出有format的信息
当我们希望跳过这个用例,并且打印出信息:
Skip : Log + SkipNow Skipf : Logf + SkipNow
当我们希望断言失败的时候,测试用例失败,打印出必要的信息,但是测试用例继续:
Error : Log + Fail Errorf : Logf + Fail
当我们希望断言失败的时候,测试用例失败,打印出必要的信息,测试用例中断:
Fatal : Log + FailNow Fatalf : Logf + FailNow
相关文章推荐
- 接口测试工具SoapUI Pro5.1.2基本使用20150920
- 接口测试_RESTClient基本使用
- 接口测试工具SoapUI Pro5.1.2基本使用20150920
- 接口测试工具SoapUI Pro5.1.2基本使用20150920
- jmeter接口测试基本使用
- 接口测试从零开始系列_mock技术使用
- 接口测试从零开始5_教你如何使用ibatis
- COM组件三个最基本的接口类 //VC6中使用COM库的三种方法
- .NET中IDisposable接口的基本使用(关于内存泄露)
- .NET中IDisposable接口的基本使用
- 接口的基本使用
- JIRA的外部请求接口REST的基本使用
- .NET中IDisposable接口的基本使用
- 使用Jmeter进行基本压力测试
- MyEclipse使用Java 通过JDBC连接MySQL数据库的基本测试
- MyEclipse使用Java 通过JDBC连接MySQL数据库的基本测试
- 使用WAMP进行压力测试,等到TOMCAT报错发现问题,基本解决国航OA服务器慢慢死掉的问题
- 简单接口的测试使用:
- .NET中IDisposable接口的基本使用
- 【软件自动化测试-QTP实战技能 7】== QTP中类的基本使用方法