我正在对此Go文件进行测试。我很困惑为什么它有问题工作。func TestMy(t *testing.T) { arr := map[string]string{ RandomOwner(): RandomString(9), RandomOwner(): RandomString(9), RandomOwner(): RandomString(9), RandomOwner(): RandomString(9), RandomOwner(): RandomString(9), RandomOwner(): RandomString(9), RandomOwner(): RandomString(9), RandomOwner(): RandomString(9), RandomOwner(): RandomString(9), RandomOwner(): RandomString(9), } ds := DataSourceStr{ data: arr, } for k, v := range ds.data { //create dataset in datasource value method res, err := ds.Value(k) fmt.Println(res) if err != nil { t.Errorf("%T does not implement Value method correctly, key %v not found", ds, k) } if res != v { t.Errorf("%T does not implement Value correctly. Expected %v but recieved %v: %v", ds, v, res, err) } return res, err }} 它为上面的函数返回此错误,/home/incompleteness_hewlbern/Documents/Code_Projects/Tests/nearmap/Private_test_golang/datasource/datasource_test.go:64:3: too many arguments to return have (interface {}, error) want ()我犯了什么错误,我应该在函数中设置类型吗?我如何简单地在函数中打印内容以测试正在发生的事情(它似乎不会显示在控制台中)。
1 回答
慕村225694
TA贡献1880条经验 获得超4个赞
测试函数不返回任何内容,测试要么通过,要么失败(不符合预期),在这种情况下,用于向 执行的测试驱动程序发出失败信号。t.Errorf()go test ...
查看 https://golang.org/pkg/testing/
在您的示例函数中,函数具有不返回任何内容的签名:但尝试返回因此错误。将循环的最后一行更改为满足测试函数的签名并提前失败或完全删除该行(取决于所需的测试逻辑)将解决问题。func TestMy(t *testing.T) {(interface {}, error)return res, errreturn
- 1 回答
- 0 关注
- 133 浏览
添加回答
举报
0/150
提交
取消
