猿问

Golang中的测试命名约定

我正在尝试第一次对Go软件包进行单元测试,并且在同一文件中有几个错误。


type FooErr int

type BarErr int


func (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) { ... } // FooErr

func TestError (t *testing.T) { ... } // BarErr

这显然是具有相同签名的两个功能。推荐的处理方法是什么?


Helenr
浏览 184回答 3
3回答

精慕HU

我将遵循测试包概述部分中记录的示例函数的约定:“声明函数F,类型T和类型M上的方法M的示例的命名约定是:”func ExampleF() { ... }func ExampleT() { ... }func ExampleT_M() { ... }godoc需要示例函数的命名约定,但为了一致性,我将遵循相同的测试约定TestT_M。

largeQ

您不需要使Xxx部分TestXxx与实际函数名称匹配。为测试加上前缀的约定Test足以使go test命令使用它们。就像Alex Lockwood在他的评论中说的那样,您可以根据需要使用TestFooError和TestBarError。
随时随地看视频慕课网APP

相关分类

Go
我要回答