2014-02-19 120 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