模块函数的Python单元测试命名约定

时间:2013-09-24 08:03:24

标签: python unit-testing naming-conventions

编写测试时,我通常将前缀为test_的模块命名为spam.pytest_spam.py。这使得查找测试变得容易。在模块中测试类时,我创建了一个具有类似类名的unittest.TestCase派生词,后缀为Test。例如Spam变为SpamTest(而不是TestSpam,因为这听起来像是Spam的测试实现。然后,类函数由测试函数测试,这些函数以test_为前缀,后缀为_testcondition或其他一些描述性后缀。我发现这很有效,因为包含了原始对象名称。

当我想测试模块级功能时会出现问题。按照我的常规结构,我将创建一个与函数同名的unittest.TestCase导数,后缀为Test。这样做的问题是类名称是驼峰式的,函数名称是低位的,带有下划线来分隔单词。忽略命名约定some_function变为SomeFunctionTest。我忍不住觉得这很难看。

什么是更合适?什么是常见做法?是否有类似pep8的'标准'?你用什么?

1 个答案:

答案 0 :(得分:3)

你这样做是最干净的方法 - 只要有一个明确的位置,人们就会期望找到模块级功能的测试,那么我认为你很好。函数名称和测试类名称之间的风格差异 - 尽管令人烦恼 - 并不足以让人担心。