2012-10-28 46 views
0

我已經覆蓋了類unittest.TestCase生成包含這樣沒有這樣的測試方法/綁定錯誤

class TestCase(unittest.TestCase): 
    def foo(self): 
     return 4711 

一些額外的功能,這我打算在setUpClass呼叫使用測試用例這樣

class MyTest(TestCase): 
    @classmethod 
    def setUpClass(cls): 
     value = cls.foo() #1 
     value = MyTest.foo() #2 
     value = MyTest().foo() #3 
     value = TestCase().foo() #4 

其中我無法訪問函數foo()我已經在修改的unitest類中實現。

我可以看到,嘗試#2將失敗,因爲我嘗試訪問未實例化的類的方法,而foo不是類方法。 我可以看到,嘗試#1也不起作用,因爲我試圖從classmethod級別訪問非類方法(或者如何正確描述這種情況)。 但爲什麼嘗試#3 /#4給我一個no such test method錯誤?

如何訪問foo()方法而不使其成爲類方法(因爲我無法改變它,因爲它是外部的東西)?

回答

0

似乎是一個黑客,但它的工作原理:

TestCase.__dict__['foo'](None) 
相關問題