基于基本测试用例的Django测试用例

时间:2014-04-25 19:06:00

标签: python django

在我的webapp中,我有一个ListItem类,然后是许多基于此但具有不同名称的其他类。

我目前所有这些都有单独的测试模块。这意味着很多重复的测试代码。

我正在尝试创建一个具有变量self.listitem_model集的BaseListItemTestCase类,在其所有测试中使用它。这意味着代码不会重复。

self.listitem_model将设置在仅包含 init ()方法的子测试用例中。

我做了以上所有,问题是,如果在基础测试类中进行了1次测试并且我只运行了子测试用例,则测试会运行两次。

这有什么理由吗?我只是想让我告诉跑的测试,跑。

class BaseListItemTestCase(APITestCase):
    def __init__(self, *args, **kwargs):
        super(BaseListItemTestCase, self).__init__(*args, **kwargs)
        self.listitem_model = None

    def test_something(self):
        self.assertEqual(self.listitem_model.objects.all().count(), 0)

class LikeListTestCase(BaseListItemTestCase):

    def __init__(self, *args, **kwargs):
        super(LikeListTestCase, self).__init__(*args, **kwargs)
        self.listitem_model = LikeListItem

1 个答案:

答案 0 :(得分:1)

您已将测试方法放入基类中,因此它由子类继承。现在有两个类使用test_something方法,因此两者都将运行。

将测试放在子类中。或者,如果您希望逻辑位于基类中,请将其放在不属于test_的方法中,并在子类中使用基本的test_something方法,只需调用该方法即可方法