Django DRF APITestCase 链测试用例

Django DRF APITestCase chain test cases

比如我想写几个这样的测试用例

class Test(APITestCase):
    def setUp(self):
        ....some payloads

    def test_create_user(self):
        ....create the object using payload from setUp

    def test_update_user(self):
        ....update the object created in above test case

在上面的示例中,test_update_user 失败是因为无法找到用户对象。因此,为了使该测试用例起作用,我必须再次创建用户 test_update_user

我发现一个可能的解决方案是 运行 在 setUp 中创建用户。但是,我想知道是否有一种方法可以将测试用例一个接一个地链接到 运行 而不会删除从前一个测试用例创建的对象。

Rest 框架测试包括扩展 Django 现有测试框架并改进对发出 API 请求的支持的助手 类。 因此,所有 DRF 调用测试都使用 Django 的内置测试框架执行。

单元测试的一个重要原则是每个测试都应该独立于所有其他测试。如果在你的情况下 test_create_user 中的代码必须在 test_update_user 之前,那么你可以将两者合并为一个测试:

def test_create_and_update_user(self):
        ....create and update user

Django 中的测试以并行方式执行,以最大限度地减少 运行 所有测试所需的时间。 正如您上面所说,如果您想在测试之间共享代码,则必须在 setUp 方法中进行设置

def setUp(self):
    pass