为测试函数命名
测试代码一般以函数的形式组织起来——你所测试的每个方法和/或情形对应一个测试函数。例如,测试SortAndFilterDocs()的测试代码是在函数Test1()中:
为测试函数选择一个好名字可能看上去很无聊而且也无关紧要,但是不要因此而诉诸没有意义的名字,像是Test1()、Test2()这样。
反而,你应当用这个名字来描述这个测试的细节。如果读测试代码的人可以很快搞明白这些的话,这一点尤其便利:
·被测试的类(如果有的话)
·被测试的函数
·被测试的情形或bug
一种构造好的测试函数名的简单方式是把这些信息拼接在一起,可能再加上一个"Test_"前缀。
例如,不要用Test1()这个名字,可以用Test_<FuncitonName>()这样的格式:
依照测试的精细程度不同,你可能会考虑为测试的每种情形写一个单独的测试函数。可以使用Test_<FunctionName>_<Situation>()这样的格式:
这里不要怕名字太长或者太繁琐。在你的整个代码库中不会调用这个函数,因此那此要避免使用长函数名的理由在这里并不适用。测试函数的名字的作用就像是注释。并且,如果测试失败了,大部分测试框架会输出其中断言失败的那个函数的名字,因此一个具有描述性的名字尤其有帮助。
请注意如果你在使用一个测试框架,可能它已经有方法命名的规则和规范了。例如,在Python的unittest模块中它需要测试方法的名字以"test"开头。
当为测试代码的辅助函数命名时,标明这个函数是否自身有任何断言或者只是一个普通的“对测试一无所知”的辅助函数。例如,在本章中,所有调用了assert()的辅助数都命名成Check……()。但是函数AddScoredDoc()就只是像普通辅助函数一样命名。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论