Ich benutze Mock, um Methode von einer Klasse mit einem bestimmten Rückgabewert zu ersetzen. Es funktioniert sehr gut, vielleicht ein wenig zu gut ... Ich mache das (siehe unten), aber in der nächsten Testklasse benutze ich die Passwortklasse ohne zu verspotten, und der in diesem Test platzierte Schein ist immer noch wirksam.Python undo Methode Mock
from utils import password as pass_helper
class TestPassword(unittest.TestCase):
def setUp(self):
self.username = "user"
self.password = "Test_1234_pass"
pass_helper._get_password_from_keyboard = Mock(return_value=self.password)
def test_password(self):
password = pass_helper._get_password_from_keyboard(self.username)
self.assertEqual(password, self.password)
Ich versuchte, die Mock in der TearDown Methode rückgängig gemacht durch so etwas wie dies zu tun, aber es funktioniert nicht.
pass_helper._get_password_from_keyboard = pass_helper._get_password_from_keyboard
Wie kann ich die ursprüngliche Funktion der Klassenmethode wiederherstellen?
Scheint mein Problem zu beheben, danke! :) – Amaranth
nachdem ich dies getan habe, bekomme ich 'ungebundene Methode xxx muss aufgerufen werden mit xxx-Instanz als das erste Argument (Got Int stattdessen)' –