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

sie*_*z0r 8 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的'标准'?你用什么?

rob*_*cox 5

你这样做的方式是最干净的方法 - 只要有一个明确的位置,人们希望在那里找到模块级功能的测试,那么我认为你很好。函数名和测试类名之间的风格差异——虽然令人烦恼——还不足以担心。