Django Rest Framework中APITest类中各个测试方法的独立性

时间:2017-01-14 05:13:59

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

我在干网站上按照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?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

测试是实验的好地方。通过一些临时测试来检查一些假设,这很容易和有趣。

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