我有一个这样写的python文件:
import sys
cfgfile = sys.argv[1]
cfg = ConfigObj(cfgfile)
db_dbname=cfg.get("DB_NAME")
class UserMappingsLoader:
def __init__(self):
self.debug = 0
self.cuStartTime = 0
self.fiId = 0
我想编写一个pyunit来测试此代码中的一个方法。但是当我运行我的测试代码时,它会显示:
cfgfile = sys.argv[1]
list index out of range
任何人都知道如何将sys.argv从测试文件模拟到此文件?
答案 0 :(得分:3)
您可以使用mock模块中的patch
执行此操作。这是一个例子:
from mock import patch
def test_your_function():
fake_args = [None, "myfakearg"]
with patch('sys.argv', fake_args):
import yourmodule
# rest of your test