簡體   English   中英

模擬文件在python中打開

[英]mock file open in python

我正在嘗試模擬文件打開,所有示例都顯示我需要

@patch('open', create=True) 

但我一直在

Need a valid target to patch. You supplied: 'open'

我知道補丁需要open完整虛線路徑 ,但我不知道它是什么。 事實上,我甚至不確定這是什么問題。

您需要包含模塊名稱; 如果您在腳本中進行測試,則模塊的名稱為__main__

@patch('__main__.open')

否則使用包含您正在測試的代碼的模塊的名稱:

@patch('module_under_test.open')

所以任何使用open()內置的代碼都會找到修補的全局代碼。

請注意, mock模塊附帶了一個mock_open()實用程序 ,它允許您使用文件數據構建合適的open()調用:

@patch('__main__.open', mock_open(read_data='foo\nbar\nbaz\n'))

在Python 3中你應該使用:

@mock.patch("builtins.open", create=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM