1
例如,我有一些代碼,試圖訪問列表:如何在Python中模擬列表?
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
我在做什麼錯?
感謝馬亭, 「@ mock.patch.object(SYS, 'ARGV',[THIS_DIR])」 版本的作品! – kinORnirvana