我根本就没有足够的有经验的Python面向对象编程知道如何做到这一点:如果我有几个班是一个unittest.TestCase
子类的子类。当后者调用这些方法时,超类的方法应该如何引用子类的变量?让我来试试这个来说明吧,可能是错误的,例如:现在Python(unittest)超类方法应该如何在其调用子类中引用一个变量?
import unittest
class TestSuper(unittest.TestCase):
def test_method(self):
# do something, e.g.
pass
class TestSub1(TestSuper):
def setUp(self):
self.some_parameter = 1
class TestSub2(TestSuper):
def setUp(self):
self.some_parameter = 2
if __name__ == '__main__':
unittest.main()
,我无法弄清楚如何correcty参考TestSub1.parameter
或TestSub2.parameter
,分别在TestSuper.test_method
从子类调用。
我被https://stackoverflow.com/a/25695512/865169的启发,但在这里我想实现有多个测试用例做同样的,但只有在它们的设置不同。我当然可以通过复制粘贴我的测试用例定义来实现所有这些,但是我发现这种错误的编码习惯。
好吧,我有点害怕混入方法由于http://nedbatchelder.com/blog/201210/multiple_inheritance_is_hard.html –
@瓦迪姆-P显示隐藏非TestCase类中的基类,以跳过测试在基类:http://stackoverflow.com/a/25695512/865169 –
@ThomasArildsen:你是不是在提供一个基地,一个mixin同样的方法。正确使用mixins并不难。另请参阅https://www.youtube.com/watch?v=EiOglTERPEo,了解有关多重继承的详细说明。 –