【问题标题】:Django vs Python2.7 unittest TestCase?Django vs Python2.7 unittest TestCase?
【发布时间】:2012-04-27 06:40:32
【问题描述】:

我正在构建一个 Django 应用程序,并且正在尝试决定如何为我的代码设置单元测试。查看 Django 文档,我看到单元测试有两个选项,Python2.7 的内置测试和 Django 的自定义 TestCase 类。在尝试查看使用哪一个时,Django 似乎只列出了 Python 的好处(https://docs.djangoproject.com/en/dev/topics/testing/?from=olddocs#which-should-i-use)。

哪个单元测试框架更可取?

【问题讨论】:

    标签: python django unit-testing


    【解决方案1】:

    简答:使用 Django TestCase。它可以做 python unittest.TestCase 可以做的所有事情,甚至更多。

    python 和 Django TestCase 类都用于单元测试。您链接到的 Which should I use 部分正在比较 单元测试doc 测试

    Django TestCase 只是 python unittest.TestCase 的扩展。如果您使用的是较早版本的 Python,那么 Django TestCase 允许您使用一些简洁的功能,例如 assertRaisesExp,这些功能仅在 python 2.7 的 unittest.TestCase 中可用。

    由于您使用的是 Python 2.7,因此您不需要使用 Django TestCase 来实现 Python 2.7 功能,但是仍然有很多额外的功能,例如 fixture loading,这意味着您应该使用 Django TestCase.

    【讨论】:

    • Django 的 TestCase 只是重新分发了最新的 unittest 模块,以确保所有功能都可用于较旧的解释器。如果您想确保可以使用 unittests 2 并仍然保持 Python 2.5 兼容性,那么您可能想要手动执行此操作,这是有人所期望的。为了兼容 Python 2.5,还重新分发了其他内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 2011-02-04
    • 2020-03-31
    • 1970-01-01
    相关资源
    最近更新 更多