그래서 unittest.mock을 사용하여 단위 테스트에서 내 방법 중 일부를 모의하려고합니다. 나는한다:
from unittest.mock import MagicMock
f = open("data/static/mock_ffprobe_response")
subprocess.check_output = MagicMock(return_value=f.read())
f.close()
그러나 나는 얻고있다 :
ImportError: No module named mock
나는 시도했다 :
pip install mock
여전히 작동하지 않습니다.
답변
unittest
내장 모듈입니다. mock
외부 라이브러리입니다 (어쨌든 3.3 이전 베타). 를 mock
통해 설치 한 후 pip install
사용하지 않고 가져옵니다.
from unittest.mock import MagicMock
그러나
from mock import MagicMock
편집 : 모듈 mock
에 포함되었으며 unittest
(Python3.3 이후) import unittest.mock
.
답변
Python 2.7의 경우 :
모의 설치 :
pip install mock
그런 다음 테스트 코드에서 다음 가져 오기를 사용합니다.
from mock import patch, MagicMock
답변
Python 2와 Python 3을 모두 지원하려면 다음을 사용할 수도 있습니다.
import sys
if sys.version_info >= (3, 3):
from unittest.mock import MagicMock
else:
from mock import MagicMock
또는 가져 오지 않으려면 sys
try:
from unittest.mock import MagicMock
except ImportError:
from mock import MagicMock
답변
왠지 import unittest.mock
저를 위해 일 하지 않았어요.
from unittest import mock
답변
실행할 때 가져 오기에 문제가 발생했습니다 pytest
. 내 pytest
버전은 2.7 버전 python
이고 내 버전은 virtualenv
3.6 버전이었습니다 python
. pip install
내에서 a 를 수행 한 virtualenv
다음 pytest
from env/bin/pytest
.
답변
귀하의 버전에 대해서는 http://hg.python.org/cpython/file/default/Lib/unittest/mock.py 로 이동 하여이 소스를 유리하게 사용하는 것이 좋습니다 .
