为了账号安全,请及时绑定邮箱和手机立即绑定

测试函数不返回值

测试函数不返回值

Go
白衣非少年 2022-08-01 16:54:13
我正在对此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


查看完整回答
反对 回复 2022-08-01
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号