1_go基础
go test 用法
可以直接指定test文件
可以直接指定example文件
test文件必须是xxx_test.go
- xxx_test文件 一般和测试程序同一个包
- 函数 TestAdd 以Test开头, 参数固定为t *Testing.T
- 如果出错就Error打印,测试框架会自动报错
example文件也是xxx_test.go
- 函数名必须ExampleAdd 以Example开头
- 一般也和测试程序同一个包
- 测试函数需要//Output: 格式,写预期输出
如果不在同一个包内, 比如叫main_test.go
- 包含一般测试Test、用法实例Example,性能测试benchmark
- 需要引入main包,一般这么写 import . "main"
- 前提是main放入GOPATH的src目录,如一般库一样,这样import命令才能正确导入
- 这样不能直接指定test文件测试。只能go test . 执行全部当前目录下测试用例
- 系统库,如果fmt,context...都是这么写的。
- 因为test文件必须和主代码文件在同一个目录,牢记同一个目录,不允许你把测试文件复制到上层,然后直接按路径导入,比如 import "./mymain" , 这样执行会报错。
interface类型
因为intreface{} 没有待实现的抽象函数,叫做空接口,任何其他类型都可以说我实现了你。
所以如果一个函数参数是interface{} , 那么可以传任何类型,比如int32、float32..., 因为这些类型都实现了interface{}空接口。
进一步扩展我们知道,如果一个接口A实现了另一个接口A1, 那么A1为参的函数,都可以传A类型实例。
就好比: 我实现了你定义的规则,我就能模仿你,变成你,代替你的位置。
什么地方用呢: 比如写test用例,你测试包只需要定义自己的接口,接口包含的函数可以只取部分testing.T接口定义的函数,这样可以直接传 t *testing.T作为测试函数的参数。
标签:文件,接口,基础知识,go,测试,test,main From: https://www.cnblogs.com/hystill/p/16815561.html