不同测试用例类的文档here
我不确定在什么情况下我会使用每个测试用例类:
APITestCase公司
APISimpleTestCase
APITransactionTestCase

最佳答案


这也可以在Django Rest框架的源代码中看到

class APITransactionTestCase(testcases.TransactionTestCase):
    client_class = APIClient


class APITestCase(testcases.TestCase):
    client_class = APIClient


class APISimpleTestCase(testcases.SimpleTestCase):
    client_class = APIClient

。。
我们不应该对数据库使用APIClient的原因是,测试数据将在多个测试中保留在数据库中。。。
最后,APISimpleTestCase用两个APISimpleTestCase块包装测试,一个用于整个测试类,一个用于类内的每个测试。这实际上阻止了在每个测试结束时回滚事务时更改其他测试的数据库。通过在整个测试类周围使用第二个APISimpleTestCase块,特定的数据库事务行为可能很难测试,因此您希望回到使用APITransactionTestCase的状态。

09-03 23:51