2016-07-13 20 views
1

Ich bin neu in OOP in Python. Ich verwende das unittest Paket zum ersten Mal. Im folgenden Code, der aus der offiziellen Python-Dokumentation stammt, rufen wir die Methode self.assertEqualassertEqual aus der Basisklasse unittest.Testcase auf?mit self.method_name innerhalb einer Klassenmethode

Wann immer wir self.method_name in einer anderen Methodendefinition einer Klasse aufrufen, ruft es die Methode aus der Basisklasse auf (unter der Annahme, dass method_name nicht für die abgeleitete Klasse definiert ist)?

import random 
import unittest 

class TestSequenceFunctions(unittest.TestCase): 

    def setUp(self): 
     self.seq = list(range(10)) 

    def test_shuffle(self): 
     # make sure the shuffled sequence does not lose any elements 
     random.shuffle(self.seq) 
     self.seq.sort() 
     self.assertEqual(self.seq, list(range(10))) 

Antwort

0

Wie im documentation for unittest angegeben, ist eine durch die assertEqualTestCase Klasse bereitgestellt Methode.

Wenn auf eine Methode zugegriffen wird (über self.<method_name>), werden die Basisklassen dann nach dieser Methode unter Verwendung der MRO oder Methodenauflösungsreihenfolge für diese bestimmte Klasse durchsucht.

+0

Danke, das macht Sinn! –

Verwandte Themen