【问题标题】:independence of individual test methods in APITest class in Django Rest FrameworkDjango Rest Framework 中 APITest 类中各个测试方法的独立性
【发布时间】:2017-05-29 13:22:49
【问题描述】:

我按照教程从干燥站点中的 APITestCase 文档中进行测试。但我可以在 drf 文档中找到一些疑问的答案。

我有一个 APITestCase 子类如下

class GroupTest(APITestCase):
    def setUp(self):
        .
        .

    def tearDown(self):
        .
        .

    def test_case_A(self):
        .
        # I create a group here
        # but I dont delete the group object in case A
        .

    def test_case_B(self):
        .
        # Will the group object from case A exist in case B ?
        # are the different test methods in a APITestCase independent?
        .

如果我在 GroupTest 类中有两个测试用例,它们是独立的吗?在案例 A 中创建的组对象会影响案例 B 吗?

【问题讨论】:

    标签: django unit-testing django-rest-framework


    【解决方案1】:

    不,每个测试都将在干净的数据库上运行。如果您需要 DB 中的某些实体 - 将它们添加到 setUp 中(它们将适用于类中的所有测试用例),或直接添加到测试用例中。

    测试用例执行后,所有更改都会回滚。如果您有一些其他更改需要撤消(例如,您创建了一些文件) - 请在 tearDown 中执行此操作。

    【讨论】:

      【解决方案2】:

      测试是进行实验的好地方。做一些临时测试来检查一些假设很容易也很有趣。

      例如,要获得问题的答案,您可以制作 2 个简单的测试用例,每个测试用例都应该创建一些实例并检查在其他测试中创建的实例是否存在(使用 print() 命令查看是什么继续)。

      【讨论】:

      • 谢谢。我已经在玩测试用例了。我只是感到困惑,因为我不知道每个测试方法都会调用 setUp 和 tearDown 。现在我正在阅读单元测试文档以了解更多关于 python 测试的信息
      猜你喜欢
      • 2020-07-08
      • 2015-05-31
      • 2013-11-15
      • 1970-01-01
      • 2023-02-26
      • 2016-06-25
      • 2011-03-22
      • 1970-01-01
      • 2018-05-14
      相关资源
      最近更新 更多