Моя структура папок выглядит так:
|- src
|- __init__.py
|- funcA.py
|- util.py
|- tests
|- __init__.py
|- test_funcA.py
|- test_util.py
Моя цель — протестировать функцию в funcA.py.
def f():
try:
helper()
except Exception as e:
raise Exception('error: fail to call helper')
Вспомогательная функция в util.py
def helper():
try:
#do something
except Exception as e:
raise Exception('error: fail to do something')
Модульный тест, который я пишу для f(), не покрывает эти две строки except Exception as e:
raise Exception('error: fail to call helper')
Вот мой тест для f
def test__f():
with mock.patch('src.utils.helper', side_effect=Exception('fail to call helper')):
from src import funcA
with pytest.raises(Exception):
funcA.f()
Как написать модульный тест, чтобы покрыть исключение повышения f? Спасибо
это должно работать, нет ничего плохого, если вы не дублируете имя функции






Я думаю, что "src.utils.helper" неверен. Я думаю, вы должны использовать "src.funcA.helper".
Я не совсем понял. Что вы подразумеваете под «исключением повышения
f»?