В настоящее время у меня есть тестовые примеры, подобные следующему:
def test_foo(self):
assert_that(self.target.do(), raises(FileNotFoundError))
Который проходит с использованием стандартной среды модульного тестирования Python, однако, если я перехожу на использование pytest, он терпит неудачу. Переключение на синтаксис pytest работает (как показано ниже), но почему в этом случае не работает сопоставитель pyhamcrest?
def test_foo(self):
with pytest.raises(FileNotFoundError):
self.target.do()
Сопоставитель PyHamcrest raises() требует, чтобы вы сделали вызов с помощью функции call() — см. учебник. Итак, в вашем случае вам нужно:
assert_that(calling(self.target.do), raises(FileNotFoundError))