Używam Mock do zamiany metody z klasy na konkretną wartość zwracaną. Działa to bardzo dobrze, może trochę zbyt dobrze ... Robię to (patrz poniżej), ale w następnej klasie testowej ponownie używam klasy haseł bez szyderstwa, a sztuczka umieszczona w tym teście jest nadal skuteczna.Metoda cofania Pythona
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)
Próbowałem cofnąć próbę w metodzie TearDown, robiąc coś takiego, ale to nie działa.
pass_helper._get_password_from_keyboard = pass_helper._get_password_from_keyboard
Jak mogę przywrócić pierwotną funkcjonalność metody klasy?
Wydaje się, że poprawiam mój problem, dzięki! :) – Amaranth
po tym robię, otrzymuję 'niezwiązaną metodę xxx musi być wywołana z instancją xxx jako pierwszym argumentem (zamiast tego int) –