在Django中使用类与文件组织测试
我正在使用Django 1.6,目前我把功能测试和单元测试分别放在不同的模块里,像这样:
/functional_tests/test*.py
/unit_tests/test*.py
我想问的是,在一个文件里创建多个类和在多个文件里每个文件只创建一个类,这两种方式有什么区别呢?有没有什么标准的最佳做法?
谢谢
1 个回答
3
我来分享一下我的一些见解和一些链接。
首先,你已经做得很好的一点是把功能测试和单元测试分开了。
另外,我个人喜欢遵循“每个文件一个测试案例”和“每个测试方法尽量少用断言”的规则。
不过,有时候你可能想测试一个视图的不同“模式”。比如说,修改密码的视图可以在用户想要更改密码时使用,也可以在用户忘记密码并使用临时密码更改时使用。在这种情况下,把这个视图的测试分成两个TestCase
,每个针对不同的模式,可能是个好主意。在这种情况下,你可以把两个测试案例放在同一个文件里,或者创建一个包含两个独立文件的包。这通常取决于测试的复杂性、大小和可读性。
另外,其实,Python之禅的原则也可以帮助你:
- 扁平结构比嵌套结构更好。(可能每个文件不要有多个测试案例)
- 可读性很重要。(如果一个测试案例很大,可能需要把它拆分成逻辑部分)
还有一些相关的链接:
- Django中的测试 - 最佳实践和示例
- Carl Meyer的测试与Django(我个人遵循了很多他的指导)
- Django测试:测试组织和一些最佳实践
另外,看看Django自己是如何组织测试的也是值得的。
希望这些对你有帮助。