目录
前言
在提交测试工程师代码前,先进行单元测试自检,没有问题,方可提交代码,对于模块或者函数需要自行测试用例。
规则:1、文件名必须以_test.go结尾;2、如果是测试函数,必须以Test开头。
1、函数测试
calc.go
package main
//加法
func add(a, b int) int {
return a + b
}
//减法
func sub(a, b int) int {
return a - b
}
calc_test.go
package main
import "testing"
//必须是Test开头
func TestAdd(t *testing.T) {
r := add(2, 4)
if r != 6 {
//类似fmt.Printf
t.Fatalf("add(2,4) err,expect:%d,actual:%d", 6, r)
}
t.Logf("test is success")
}
func TestSub(t *testing.T) {
r := sub(10, 4)
if r != 6 {
//类似fmt.Printf
t.Fatalf("add(2,4) err,expect:%d,actual:%d", 6, r)
}
t.Logf("test is success")
}
运行结果,在main包中执行 go test。
2、结构体测试
student.go
package main
import (
"encoding/json"
"io/ioutil"
)
type student struct {
Name string
Sex string
Age int
}
//保存信息方法
func (s *student) Save() (err error) {
//结构体json序列号生成
data, err := json.Marshal(s)
if err != nil {
return
}
//文件保存
err = ioutil.WriteFile("stu.txt", data, 0755)
return
}
student_test.go
package main
import "testing"
//测试信息保存
func Test(t *testing.T) {
//结构体实例
stu := &student{
Name: "张三",
Sex: "男",
Age: 18,
}
//测试保存
err := stu.Save()
if err != nil {
t.Fatalf("保存信息异常,err:%v\n", err)
}
}
运行结果为:
进入到stu.txt文件进行查看