- 主题:go test是只能测试暴露的函数么
也就是函数名第一个是大写字母的么?
不然一直报testing: warning: no tests to run
那我写一个tcp server的程序,其实没有对外暴露任何函数,那我就只能测试收发报文?
--
FROM 106.120.101.*
没太明白
比如我有个tcpserver的go程序
有个parser.go,里面有个handle_content的函数
我创建一个parser_test.go,定义一个Testhandle_content,但是就是提示没有测试内容
必须将函数改成Handle_content,然后定义测试函数为TestHandle_content,才能测试成功
【 在 Badluck 的大作中提到: 】
: 很多项目的test文件都安排在同包下
--
FROM 106.120.101.*
我放的就是一个目录啊
但是现在只能测试大写字母开头的函数
从go test能搜到的例子看
都是测试Add这种函数
没看到有人测试add
我现在不知道到底是我那部分做的不对
还是go test就是有这个限制
【 在 Badluck 的大作中提到: 】
: parser_test.go放到parser.go坐在的package下
--
FROM 106.120.101.*
能展开说一下什么是函数命名不规范
我现在的发现就是必须函数首字母大写比如Add
然后测试函数也要用一样的名字比如
TestAdd(t *testing.T) {
Add()
}
【 在 flw 的大作中提到: 】
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 这一步是不需要的。你的问题只是函数命名不规范罢了。
--
FROM 106.120.101.*
我搜到一个网页说
基准测试的函数必须以Benchmark开头,必须是可导出的
感觉就是不论是性能测试还是单元测试 测试不了小写字母开头的内部函数
报那个warning的错误
go test
init
testing: warning: no tests to run
PASS
ok msrp 0.008s
【 在 Badluck 的大作中提到: 】
: 报错是啥呀
: 我还真没遇到过
--
FROM 106.120.101.*
真相大白了,如果用Testadd不工作
必须把测试函数的名字改成
TestAdd{
add
}
【 在 Badluck 的大作中提到: 】
: t_test.go
: package t
: import "testing"
: ...................
--
FROM 106.120.101.*
搞明白了必须Test后面接大写字母,小写字母不行
【 在 flw 的大作中提到: 】
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 这一步是不需要的。你的问题只是函数命名不规范罢了。
--
FROM 106.120.101.*