在 Python 中使用 With 语句模拟 Open
当测试使用带有 with 语句的 open() 函数的代码时,有必要模拟公开调用以断言预期行为。以下是如何使用 Python 中的 Mock 框架执行此操作:
Python 3
<code class="python">from unittest.mock import patch, mock_open with patch("builtins.open", mock_open(read_data="data")): mock_file = open("path/to/open") assert mock_file.read() == "data" mock_file.assert_called_with("path/to/open")</code>
或者,您可以使用 patch 作为装饰器,并将 new_callable 参数设置为mock_open:
<code class="python">@patch("builtins.open", new_callable=mock_open, read_data="data") def test_patch(mock_file): open("path/to/open") assert mock_file.read() == "data" mock_file.assert_called_with("path/to/open")</code>
Python 2
以上是如何在 Python 单元测试中使用 With 语句模拟 Open 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!