最佳答案
我想了解如何从导入的模块@patch
函数。
这是目前为止我所处的位置。
应用程序/ 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()
应用程序/ my_module / __init__ . py:
def get_user_name():
return "Unmocked User"
测试/ 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()
这做不工作,正如我所期望的。"patched"模块只是返回get_user_name
的未模拟值。如何模拟正在导入到测试中的名称空间中的其他包中的方法?