Python 3.x Python中的Mock os.remove和unittest.Mock
如何使用Python 3.x Python中的Mock os.remove和unittest.Mock,python-3.x,unit-testing,mocking,pytest,Python 3.x,Unit Testing,Mocking,Pytest,如何使用unittest.mock模拟os.remove 我的尝试(使用pytest) 给出了错误 表示删除未被模拟。您有两种可能性:要么模拟模块os并从模块中使用remove(test\u remove1),要么从os import remove中执行,并在您自己的模块中模拟副本(test\u remove2): 测试\u删除.py import os from os import remove from mock import patch def test_remove1(): w
unittest.mock
模拟os.remove
我的尝试(使用pytest
)
给出了错误
表示删除未被模拟。您有两种可能性:要么模拟模块
os
并从模块中使用remove
(test\u remove1
),要么从os import remove中执行,并在您自己的模块中模拟副本(test\u remove2
):
测试\u删除.py
import os
from os import remove
from mock import patch
def test_remove1():
with patch('os.remove'):
os.remove('foo')
def test_remove2():
with patch('test_remove.remove'):
remove('foo')
在实际测试中,导入将发生在另一个模块中,因此必须调整第二种情况以修补该模块。看起来像是从os import remove导入。在这种情况下,您必须在当前模块中模拟删除(请参阅)。如果您导入操作系统
并使用操作系统,它应该可以工作。请删除
。
remove('foo') E FileNotFoundError: [Errno 2] No such file or directory: 'foo'
import os
from os import remove
from mock import patch
def test_remove1():
with patch('os.remove'):
os.remove('foo')
def test_remove2():
with patch('test_remove.remove'):
remove('foo')