Open mit With-Anweisungen in Python verspotten
Beim Testen von Code, der die open()-Funktion mit einer with-Anweisung verwendet, ist es notwendig, dies zu tun Machen Sie sich über den offenen Aufruf lustig, um das erwartete Verhalten durchzusetzen. So machen Sie es mit dem Mock-Framework in Python:
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>
Alternativ können Sie patch als Dekorator verwenden, wobei das Argument new_callable auf gesetzt ist 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
Das obige ist der detaillierte Inhalt vonWie verspotte ich die Open-Funktion mit With-Anweisungen in Python-Unit-Tests?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!