我根本就沒有足夠的有經驗的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,瞭解有關多重繼承的詳細說明。 –