2014-02-19 53 views
1

單元測試python庫中,我可以使用setUp方法設置變量之前,每個測試和setUpclass所有測試。單元測試數據setUpClass設置

如何將setUpClass的數據傳遞給setUp

我試試這個:

class TestSequenceFunctions(unittest.TestCase): 

    @classmethod 
    def setUpClass(cls): 
     cls.a = 0 

    def setUp(self): 
     self.a = cls.a 

    def test_hello01(self): 
     self.assertEquals(self.a, 0) 

if __name__ == '__main__': 
    unittest.main(verbosity=2) 

,但我得到

NameError: global name 'cls' is not defined 

回答

1

從設置(),您可以直接訪問內 '一個' 不 'CLS' 符號,即:

def setUp(self): 
    print self.a # should print 0 
+0

我認爲這個想法是在對象中創建類屬性的「本地」副本,這樣如果'self.a'被修改,'cls.a'會保留下次的原始值。 – chepner

+0

每個測試都會將self.a重置爲0(在他的示例中) – user590028

2

您可以使用__class__屬性訪問對象的類。

self.a = self.__class__.a