导入模块的Python测试和模拟
我有一个模块可以导入另一个模块,如下所示:导入模块的Python测试和模拟,python,python-3.x,python-2.7,pytest,Python,Python 3.x,Python 2.7,Pytest,我有一个模块可以导入另一个模块,如下所示: #main-file.py import src.FetchFunction.video_service.fields.urls as urls def some_func(): return urls.fetch() import unittest import src.FetchFunction.video_service.fields.urls as urls from unittest.mock import MagicMock cl
#main-file.py
import src.FetchFunction.video_service.fields.urls as urls
def some_func():
return urls.fetch()
import unittest
import src.FetchFunction.video_service.fields.urls as urls
from unittest.mock import MagicMock
class MainFileTest(unittest.TestCase):
def test_example(self):
urls.fetch = MagicMock(return_value='mocked_resp')
assertSomething()
现在我想像这样测试这个文件:
#main-file.py
import src.FetchFunction.video_service.fields.urls as urls
def some_func():
return urls.fetch()
import unittest
import src.FetchFunction.video_service.fields.urls as urls
from unittest.mock import MagicMock
class MainFileTest(unittest.TestCase):
def test_example(self):
urls.fetch = MagicMock(return_value='mocked_resp')
assertSomething()
这部分工作得很好,符合我的要求。
但是
这将影响其他测试文件。。。
我的意思是,我还有其他使用“url.fetch”的测试
而现在不是得到正确的流量
他们得到了上述嘲笑的回应
有什么想法吗
- 很确定这没有关系,但我正在使用
运行我的测试pytest
获取应使用的范围。在下面的示例中,在带
的块外,URL。fetch
将恢复为原始值:
import unittest
from unittest.mock import patch
class MainFileTest(unittest.TestCase):
def test_example(self):
with patch('urls.fetch', return_value='mocked_resp'):
# urls.fetch is mocked now
assertSomething()
# urls.fetch is not mocked anymore
4天前你在哪里。。。谢谢很抱歉,但很高兴听到这对你有帮助!Hey@hoefling如何在测试文件中模拟导入的模块。“from.modifiers导入修饰符”。补丁看起来不错你想模拟模块吗?还是要模拟实际从中导入的内容(Modifiers
class)?检查一下进口材料的模拟可能性。