@patch
가져온 모듈에서 함수를 사용하는 방법을 이해하고 싶습니다 .
이것은 내가 지금까지있는 곳이다.
app / mocking.py :
from app.my_module import get_user_name
def test_method():
return get_user_name()
if __name__ == "__main__":
print "Starting Program..."
test_method()
app / my_module / __ init__.py :
def get_user_name():
return "Unmocked User"
test / mock-test.py :
import unittest
from app.mocking import test_method
def mock_get_user():
return "Mocked This Silly"
@patch('app.my_module.get_user_name')
class MockingTestTestCase(unittest.TestCase):
def test_mock_stubs(self, mock_method):
mock_method.return_value = 'Mocked This Silly')
ret = test_method()
self.assertEqual(ret, 'Mocked This Silly')
if __name__ == '__main__':
unittest.main()
예상대로 작동 하지 않습니다 . "패치 된"모듈은 단순히의 모방되지 않은 값을 반환합니다 get_user_name
. 테스트중인 네임 스페이스로 가져 오는 다른 패키지의 메서드를 어떻게 모의합니까?
나는 내가이 권리에 대해 갈 것인지 묻고있다. Mock을 보았지만이 특정 문제를 해결할 방법을 찾지 못했습니다. Mock에서 위에서했던 작업을 재현 할 수있는 방법이 있습니까?
—
nsfyn55 2013
Mock
python3.3 +에unittest.mock
.