Błąd ValueError

0

Witam, nie rozumiem, dlaczego przy takim kodzie:

def test_stress_incorrect_data_2(self):
    self.assertRaises(ValueError, tank, -57, 120, 200, "You have given the wrong value: a")

otrzymuję błąd:

TypeError: tank() takes 3 positional arguments but 4 were given

----------------------------------------------------------------------
Ran 3 tests in 0.001s

FAILED (errors=1)

a jeżeli

def test_stress_incorrect_data_2(self):
    self.assertRaises(ValueError, tank, -57, 120, 200)

to mam błąd:

AssertionError: ValueError not raised by tank

----------------------------------------------------------------------
Ran 3 tests in 0.001s

FAILED (failures=1)

jak poprawnie napisać tąl linię kodu? Dziękuje za pomoc.

1

Jak wygląda funkcja, tank? Poza tym, RTFM :), assertRaises przyjmuje parametr, message, tylko gdy wołane jako context manager.
https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaises

2
def test_stress_incorrect_data_2(self):
    with self.assertRaises(ValueError):
      tank(-57, 120, 200)

albo

def test_stress_incorrect_data_2(self):
    self.assertRaises(ValueError, lambda: tank(-57, 120, 200))

1 użytkowników online, w tym zalogowanych: 0, gości: 1