#python-3.x #python-unittest #python-unittest.mock
Вопрос:
Вот структура проекта, которая у меня есть —
src/
package1/
__init__.py
file1.py # has the method -> _method_name
tests/
__init__.py
test_file1.py
Я использую unittest для тестирования своего кода. Я хочу смоделировать метод в пакете 1 и запустить свои тесты. Вот что я делаю, чтобы высмеять этот метод —
with unittest.mock.patch('package1.file1._method_name') as method_name_mock:
Это должно создать магический блок для имени метода. Когда я начинаю отладку, он вызывает реальный метод, который мне не нужен.
Я проверяю, был ли макет вызван дважды, что и должно быть, но почему-то это не удается, так как вызывается реальный метод —
assert method_name_mock.call_count == 2
Что я делаю не так?
Комментарии:
1. Вероятно, вы исправляете неправильный объект — это зависит от того, как вы импортируете метод в реальный код. Пожалуйста, проверьте, где можно исправить .
2. а, правильно. Неправильно использовал патч. Спасибо