- 主题:go test是只能测试暴露的函数么
也就是函数名第一个是大写字母的么?
不然一直报testing: warning: no tests to run
那我写一个tcp server的程序,其实没有对外暴露任何函数,那我就只能测试收发报文?
--
FROM 106.120.101.*
很多项目的test文件都安排在同包下
--
FROM 114.251.232.*
没太明白
比如我有个tcpserver的go程序
有个parser.go,里面有个handle_content的函数
我创建一个parser_test.go,定义一个Testhandle_content,但是就是提示没有测试内容
必须将函数改成Handle_content,然后定义测试函数为TestHandle_content,才能测试成功
【 在 Badluck 的大作中提到: 】
: 很多项目的test文件都安排在同包下
--
FROM 106.120.101.*
【 在 lioncat7 (lioncat) 的大作中提到: 】
: 没太明白
: 比如我有个tcpserver的go程序
: 有个parser.go,里面有个handle_content的函数
: 我创建一个parser_test.go,定义一个Testhandle_content,但是就是提示没有测试内容
: 必须将函数改成Handle_content,然后定义测试函数为TestHandle_content,才能测试成功
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 这一步是不需要的。你的问题只是函数命名不规范罢了。
--
FROM 163.125.197.*
parser_test.go放到parser.go坐在的package下
【 在 lioncat7 的大作中提到: 】
: 没太明白
: 比如我有个tcpserver的go程序
: 有个parser.go,里面有个handle_content的函数
: ...................
--
FROM 114.251.232.*
我放的就是一个目录啊
但是现在只能测试大写字母开头的函数
从go test能搜到的例子看
都是测试Add这种函数
没看到有人测试add
我现在不知道到底是我那部分做的不对
还是go test就是有这个限制
【 在 Badluck 的大作中提到: 】
: parser_test.go放到parser.go坐在的package下
--
FROM 106.120.101.*
报错是啥呀
我还真没遇到过
【 在 lioncat7 的大作中提到: 】
: 我放的就是一个目录啊
: 但是现在只能测试大写字母开头的函数
: 从go test能搜到的例子看
: ...................
--
FROM 114.251.232.*
能展开说一下什么是函数命名不规范
我现在的发现就是必须函数首字母大写比如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.*
t_test.go
package t
import "testing"
func TestAdd(t *testing.T) {
add(1,2)
}
t.go
package t
import "fmt"
func add(a, b int) {
fmt.Println(a +b)
}
func BenchmarkAdd(b *testing.B) {
for i := 0; i < b.N; i++ {
add(i,i+1)
}
}
我这个没问题呀
--
修改:Badluck FROM 114.251.232.*
FROM 114.251.232.*