在Django单元测试中,我从一个自定义类继承,为所有测试用例提供一些通用的辅助函数。然后自定义类继承自TestCase(来自django.test)
class APITest(TestManager):
def setUp(self):
self.User, self.api_client = super(APITest, self).setUp()
测试管理器如下所示:
class TestManager(TestCase):
def setUp(self):
# do some stuff
调用super(APITest, self).setUp()
-需要更多值来解压缩时显示警告
让TestManager从TestCase继承的目标也是让它访问TestCase断言方法(收集更多关于测试结果的信息)。
代码仍然运行良好,但这个警告让我担心这个实现是否正确或可以改进。此外,我不理解这个错误,因为对super的调用仍然有效,并返回2个值。
注意:最初,TestManager并没有从TestCase继承,也没有显示任何警告。
因此,这实际上是一个由两部分组成的问题:为什么会出现这种错误?这里是否存在可以改进的设计缺陷?
如果您想对测试进行通用设置,可以向TestManager
添加一个称为setUpClass
的类方法,如下所示:
class TestManager(TestCase):
@classmethod
def setUpClass(cls):
# generic setup here.
class APITest(TestManager):
def setUp(self):
# specific (and additional) setup here.
对于CCD_ 4和CCD_。
正在重新调整您的设计
只需从TestManager
:继承APITest
class APITest(TestManager):
def setUp(self):
# do some stuff
最后,这就是TestManager
的目的,对吧?使其功能可用于其他测试。
类APITest
也将具有来自TestCase
的方法,因为TestManager
继承自它