返回介绍

为测试函数命名

发布于 2024-08-18 11:54:28 字数 1399 浏览 0 评论 0 收藏 0

测试代码一般以函数的形式组织起来——你所测试的每个方法和/或情形对应一个测试函数。例如,测试SortAndFilterDocs()的测试代码是在函数Test1()中:

为测试函数选择一个好名字可能看上去很无聊而且也无关紧要,但是不要因此而诉诸没有意义的名字,像是Test1()、Test2()这样。

反而,你应当用这个名字来描述这个测试的细节。如果读测试代码的人可以很快搞明白这些的话,这一点尤其便利:

·被测试的类(如果有的话)

·被测试的函数

·被测试的情形或bug

一种构造好的测试函数名的简单方式是把这些信息拼接在一起,可能再加上一个"Test_"前缀。

例如,不要用Test1()这个名字,可以用Test_<FuncitonName>()这样的格式:

依照测试的精细程度不同,你可能会考虑为测试的每种情形写一个单独的测试函数。可以使用Test_<FunctionName>_<Situation>()这样的格式:

这里不要怕名字太长或者太繁琐。在你的整个代码库中不会调用这个函数,因此那此要避免使用长函数名的理由在这里并不适用。测试函数的名字的作用就像是注释。并且,如果测试失败了,大部分测试框架会输出其中断言失败的那个函数的名字,因此一个具有描述性的名字尤其有帮助。

请注意如果你在使用一个测试框架,可能它已经有方法命名的规则和规范了。例如,在Python的unittest模块中它需要测试方法的名字以"test"开头。

当为测试代码的辅助函数命名时,标明这个函数是否自身有任何断言或者只是一个普通的“对测试一无所知”的辅助函数。例如,在本章中,所有调用了assert()的辅助数都命名成Check……()。但是函数AddScoredDoc()就只是像普通辅助函数一样命名。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文