我该如何嘲笑os.remove
with unittest.mock
?
我的尝试(使用pytest
)
def test_patch_remove():
with patch("os.remove"):
remove('foo')
给出错误
remove('foo') E FileNotFoundError: [Errno 2] No such file or directory: 'foo'
表明remove没有被mock。
你有两种可能性:要么你模拟模块os
并使用remove
从模块(test_remove1
),或者你这样做from os import remove
,并在您自己的模块中模拟副本(test_remove2
):
测试删除.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')
在实际测试中,导入将发生在另一个模块中,因此必须调整第二种情况以修补该模块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)