La differenza si manifesta quando si dispone di più di un metodo di test nella classe. setUpClass
e tearDownClass
vengono eseguiti una volta per l'intera classe; setUp
e tearDown
vengono eseguiti prima e dopo ogni metodo di prova.
Ad esempio:
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")
Quando si esegue questo test, stampa:
setUpClass
setUp
test1
tearDown
.setUp
test2
tearDown
.tearDownClass
(. I punti (.
) sono unittest
s' uscita di default quando un test viene superato) Si osservi che setUp
e tearDown
vengono visualizzati prima e dopo test1
etest2
, mentre setUpClass
e tearDownClass
vengono visualizzati solo una volta, all'inizio e alla fine dell'intero caso di test.
fonte
2014-05-15 06:32:33
Non dovrebbe essere l'ordine? : setUpClass setUp test1 tearDown .setup test2 .tearDown tearDownClass –
@JaiSharma Questo è quello che ho già? –
Avviso "." di fronte a TearDown e all'assenza di "." di fronte a tearDownClass –