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
比如我想写几个这样的测试用例
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