继承测试用例的 Python 引发的警告 - 'Need more values to unpack'



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继承自它

最新更新