Python 模拟测试中的特定方法不起作用

Python 模拟测试中的特定方法不起作用,python,python-unittest,Python,Python Unittest,我正在使用Python 3.5.2。我试图在不同的测试用例下模拟相同的方法,但似乎sys.argv没有得到模拟 我还尝试使用@patch装饰器,但没有效果 main.py: 从操作系统导入路径 从系统导入argv 全局={} def get_target_dir(): 如果len(argv)

我正在使用Python 3.5.2。我试图在不同的测试用例下模拟相同的方法,但似乎
sys.argv
没有得到模拟

我还尝试使用
@patch
装饰器,但没有效果

main.py

从操作系统导入路径
从系统导入argv
全局={}
def get_target_dir():
如果len(argv)<2或路径不存在(argv[1]):
print(“必须将实例目录的有效完整路径指定为命令行参数。”)
出口(1)
全局变量['TARGET_DIR']=argv[1]+('/'如果argv[1][1]!='/'其他')
tests.py

导入单元测试
从unittest.mock导入修补程序
从主导入获取\u目标\u目录,全局
类TestMain(unittest.TestCase):
def test_CORPORT_target_dir(自我):
argv=[None',/test']
使用补丁('sys.argv',argv',补丁('os.path.exists',lambda:True):
获取\u目标\u目录()
断言全局变量['TARGET_DIR']==argv[1]+'/'
def测试\u无效\u目标\u目录(自身):
argv=[无,'/']
使用修补程序('sys.argv',argv),修补程序('os.path.exists',lambda:False):
尝试:
获取\u目标\u目录()
除系统退出外:
断言正确
其他:
断言错误

当我运行测试时,由于上面的问题,它们不能按预期工作。

我意识到我不知道,所以我错误地将
sys.argv
方法包含在
main.py
-将导入
从sys import argv
替换为刚才的
import sys
(并进一步将
sys.
放在
argv
的前面)一切都开始工作了