在Django中使用类与文件组织测试

4 投票
1 回答
1233 浏览
提问于 2025-04-18 00:44

我正在使用Django 1.6,目前我把功能测试和单元测试分别放在不同的模块里,像这样:

/functional_tests/test*.py

/unit_tests/test*.py

我想问的是,在一个文件里创建多个类和在多个文件里每个文件只创建一个类,这两种方式有什么区别呢?有没有什么标准的最佳做法?

谢谢

1 个回答

3

我来分享一下我的一些见解和一些链接。

首先,你已经做得很好的一点是把功能测试和单元测试分开了。

另外,我个人喜欢遵循“每个文件一个测试案例”和“每个测试方法尽量少用断言”的规则。

不过,有时候你可能想测试一个视图的不同“模式”。比如说,修改密码的视图可以在用户想要更改密码时使用,也可以在用户忘记密码并使用临时密码更改时使用。在这种情况下,把这个视图的测试分成两个TestCase,每个针对不同的模式,可能是个好主意。在这种情况下,你可以把两个测试案例放在同一个文件里,或者创建一个包含两个独立文件的包。这通常取决于测试的复杂性、大小和可读性。

另外,其实,Python之禅的原则也可以帮助你:

  • 扁平结构比嵌套结构更好。(可能每个文件不要有多个测试案例)
  • 可读性很重要。(如果一个测试案例很大,可能需要把它拆分成逻辑部分)

还有一些相关的链接:

另外,看看Django自己是如何组织测试的也是值得的。

希望这些对你有帮助。

撰写回答