2014-05-15 5 views

Antwort

61

Der Unterschied zeigt sich, wenn Sie mehr als eine Testmethode in Ihrer Klasse haben. setUpClass und tearDownClass werden einmal für die gesamte Klasse ausgeführt; setUp und tearDown werden vor und nach jeder Testmethode ausgeführt.

Zum Beispiel:

class Example(unittest.TestCase): 
    @classmethod 
    def setUpClass(cls): 
     print("setUpClass") 

    def setUp(self): 
     print("setUp") 

    def test1(self): 
     print("test1") 

    def test2(self): 
     print("test2") 

    def tearDown(self): 
     print("tearDown") 

    @classmethod 
    def tearDownClass(cls): 
     print("tearDownClass") 

Wenn Sie diesen Test ausführen, druckt:

setUpClass 
setUp 
test1 
tearDown 
.setUp 
test2 
tearDown 
.tearDownClass 

(. Die Punkte (.) sind unittest ‚s Standard-Ausgabe, wenn ein Test bestanden) Beachten Sie, dass setUp und tearDown erscheinen vor und nach test1undtest2, während setUpClass und tearDownClass erscheinen nur einmal am Anfang und am Ende des gesamten Testfalls.

+0

Sollte die Bestellung nicht das sein? : setUpClass setUp test1 tearDown .setup test2 .tearDown tearDownClass –

+0

@JaiSharma das ist, was habe ich schon? –

+0

Beachten Sie das "." vor dem TearDown und der Abwesenheit von "." vor der tearDownClass –

Verwandte Themen