Django DRF APITestCase链测试用例

时间:2018-11-27 10:24:26

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

例如,我要编写几个这样的测试用例

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中运行create user。但是,我想知道是否有一种方法可以链接测试用例,使其一个接一个地运行,而不删除从先前测试用例创建的对象。

1 个答案:

答案 0 :(得分:0)

其余框架测试包括帮助程序类,这些类扩展了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