我试图在@pytest.fixture
中设置测试目标,并在模块中的所有测试中使用它.我能够正确地修补测试,但在添加@pytest.fixture
以返回模拟对象并在其他单元测试中调用模拟对象后,该对象开始引用原始函数.
以下是我的代码.我原以为单元测试中的mocked_worker
会引用返回值,但它会调用实际的os.getcwd
方法.
请帮我更正代码:
import os
import pytest
from unittest.mock import patch
class Worker:
def work_on(self):
path = os.getcwd()
print(f'Working on {path}')
return path
@pytest.fixture()
def mocked_worker():
with patch('test.test_module.os.getcwd', return_value="Testing"):
result = Worker()
return result
def test_work_on(mocked_worker):
ans = mocked_worker.work_on()
assert ans == "Testing"