首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试Go中未导出函数的命名约定

测试Go中未导出函数的命名约定
EN

Stack Overflow用户
提问于 2017-12-29 21:25:02
回答 1查看 1.2K关注 0票数 1

我无法跟踪从哪里知道它,但是通常情况下,如果为方法Foo编写测试,则相应的测试名为TestFoo

如果测试一个未导出的函数,比如foo,那么测试的名称应该是什么?

我的问题来自这样一个事实,即Go的JetBrains IDE在被要求为未导出的函数生成测试时,会生成类似于Test_foo的内容。

这种行为可能是有意义的,因为如果您有Foo,并且它是在同一个包中的未导出的反may foo,那么您可能希望以某种方式对它们进行不同的测试(至少是为了在IDE中跳到测试特性)。

那么,在未导出的函数之后命名测试有什么约定吗?

顺便说一句: Go 测试包的文档说,如果是这样的话,就会执行测试:

表格的任何功能 func TestXxx(*testing.T) 其中Xxx可以是任何字母数字字符串(但第一个字母不能在and中),用于标识测试例程。

这意味着,任何具有下划线的测试都不应该由go test执行。然而,我们都知道,这样的测试工作正常。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-01 21:44:04

我最初对此感到困惑的原因有两点:

1)在测试函数名中允许下划线的假设。这一假设得到了大量大型开源项目的支持。

2)事实上,JetBrains Idea生成包含下划线的名称的测试

对我自己的问题的回答是:有一种惯例(我更愿意说,这是Google的指导方针),许多项目都违反了这一原则。不应在测试名称中使用下划线。

我投票赞成结束我自己的问题,并在JetBrains bug跟踪器中创建了一个错误报告。https://youtrack.jetbrains.com/issue/GO-5185

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48028617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档