传统的测试:
package main import ( "fmt" ) func addUpper(n int) int { res := 0 for i := 0; i <= n; i++ { res += i } return res } func main() { res := addUpper(10) if res != 55 { fmt.Printf(错误,真实值:%v,期望值:%v",res,) } else正确,真实值:%v,期望值:%v) } }
存在问题:(1)需要修改main函数,如果程序正在运行,则需要停止程序;(2)需要测试多个函数时,步骤较为繁琐;
单元测试:(1)确保每个函数都是可运行的,并且运行结果都是正确的;(2)确保写出来的代码性能是好的;
利用go中的testing包:测试以TestXxx开头的函数,注意第一个X是大写的。
测试的整体流程图:
具体目录:
main.go
package main
func main() {
}
pro.go
package utils func addUpper(n res } func sub(n1 int,n2 { return n1 - n2 }
add_test.go
package utils import ( " testing ) func TestAddUpper(t *testing.T) { res := addUpper( { //程序错输,则退出,并输出日志 t.Fatalf(AddUpper(10)执行错误,期望值=%v,输出值=%v,res) } 如果正确,输出日志 t.Logf(AddUpper(10)执行正确。。。) } func TestHello(t *testing.T) { fmt.Println(hello world) }
sub_test.go
package utils import func TestSub(t *testing.T) { res := sub(20,1)">sub(20,10)执行错误,期望值=%v,输出值=%v) }
最后结果:
单元测试注意事项:
(1)测试用例函数必须以TestXxx命令,其中第一个X大写;
(2)测试用例文件必须以_test.go结尾;
(3)TestXxx(t *testing.T)形参类型必须是*testing.T;
(4)一个测试用例文件中可以有多个测试用例;
(5)运行测试用例指令:
go test (运行正确无日志,错误输出日志)
go test -v (不管是否正确,都输出日志)
(6)当出现错误时,可以使用t.Fatalf来格式化输出错误信息,并退出程序;
(7)t.logf()可以输出相应的日志;
(8)PASS表示测试用例通过,FAIL表示失败;
(9)测试单个文件:go test -v add_test.go pro.go
(10)测试单个方法:go test -v -test.run TestAddUpper
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。