导入modu的Python测试与模拟

2024-09-29 21:39:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个导入另一个模块的模块,如下所示:

#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来运行我的测试

Tags: 模块文件importsrcfieldsreturndefas
1条回答
网友
1楼 · 发布于 2024-09-29 21:39:10

在上下文中使用^{}来定义应该使用模拟的fetch的范围。在下面的示例中,在with块外,urls.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

相关问题 更多 >

    热门问题