【发布时间】:2017-11-01 07:17:47
【问题描述】:
例如,我有一些代码试图访问一个列表:
def some_code():
script_dir = os.path.dirname(sys.argv[0])
我需要模拟sys.argv[0]。所以我将@patch.object 添加到我的测试中:
import os
import sys
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
@mock.patch.object(sys, 'argv', mock.Mock(return_value=[THIS_DIR]))
def test_mytest():
some_code()
但这不起作用。 Pytest 报错:
> script_dir = os.path.dirname(sys.argv[0])
E TypeError: 'Mock' object does not support indexing
我做错了什么?
【问题讨论】:
标签: python unit-testing mocking pytest python-mock