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

Golang中的测试命名约定

Golang中的测试命名约定

Go
Helenr 2021-05-21 18:06:11
我正在尝试第一次对Go软件包进行单元测试,并且在同一文件中有几个错误。type FooErr inttype BarErr intfunc (e *FooErr) Error () string {    return "A Foo Error has occurred"}func (e *BarErr) Error () string {    return "A Bar Error has occurred"}但是,所有命名约定看起来都像这样func TestXxx(*testing.T)(从testing软件包文档中)。这意味着我的测试文件将如下所示:func TestError (t *testing.T) { ... } // FooErrfunc TestError (t *testing.T) { ... } // BarErr这显然是具有相同签名的两个功能。推荐的处理方法是什么?
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

我将遵循测试包概述部分中记录的示例函数的约定:


“声明函数F,类型T和类型M上的方法M的示例的命名约定是:”


func ExampleF() { ... }

func ExampleT() { ... }

func ExampleT_M() { ... }

godoc需要示例函数的命名约定,但为了一致性,我将遵循相同的测试约定TestT_M。


查看完整回答
反对 回复 2021-05-31
?
largeQ

TA贡献2039条经验 获得超7个赞

您不需要使Xxx部分TestXxx与实际函数名称匹配。为测试加上前缀的约定Test足以使go test命令使用它们。

就像Alex Lockwood在他的评论中说的那样,您可以根据需要使用TestFooError和TestBarError。


查看完整回答
反对 回复 2021-05-31
  • 3 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信