在GO语言中测试具有相同名称的函数。

huangapple go评论89阅读模式
英文:

Testing Functions with the same name in GO

问题

在Go语言中,可以编写特定于结构体的函数。

type one struct{}

func (o *one) fly() {}

我的问题是,如果有两个函数具有相同的名称但指向不同的结构体,该如何测试函数。

type one struct{}

func (o *one) fly() {}

type two struct{}

func (t *two) fly() {}

由于Go测试的格式是TestXxx(t *testing.T),我不确定如何能够分别测试每个函数。

谢谢。

英文:

In go it is possible to write functions that are specific to structs.

type one struct{}

func (o *one) fly() {}

My questions is how can you test a function if there are two functions with the same name but point to different structs.

type one struct{}

func (o *one) fly() {}

type two struct{}

func (t *two) fly() {}

Since the formatting for GO tests is TestXxx (t *testing.T) {}
I'm unsure how I would be able to test each function separately.
Thanks

答案1

得分: 7

TestXxx只是一种命名约定。Xxx可以是任何你想要的内容,但是Test(以及BenchmarkExample)是必需的。所以,声明两个测试函数——TestOneFlyTestTwoFly,就这样。或者你可以在一个测试中测试两个,初始化两个结构体。

英文:

TestXxx is just a naming convention. Xxx may be anything you want, but Test (with Benchmark and Example) are required. So, declare 2 testing functions — TestOneFly and TestTwoFly, that's all. Or you can test both in TestFly, initializing both structs in one test.

答案2

得分: 0

使用点运算符在结构体实例上调用特定的函数。

aOne := one{}
aOne.fly() //调用第一个版本

aTwo := two{}
aTwo.fly() //调用第二个版本
英文:

Invoke the specific function using the dot operator on an instance of the struct.

aOne := one{}
aOne.fly() //Calls the first version

aTwo := two{}
aTwo.fly() //Calls the second version

huangapple
  • 本文由 发表于 2014年2月26日 13:08:19
  • 转载请务必保留本文链接:https://go.coder-hub.com/22032295.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定