Cara Mengejek Objek yang Digunakan dalam Pengurus Konteks dengan unittest.mock
Apabila menguji kod yang menggunakan pernyataan with, ia boleh mencabar untuk mengejek objek asas. Mari kita pertimbangkan contoh berikut:
def testme(filepath): with open(filepath) as f: return f.read()
Untuk menguji fungsi ini dengan unittest.mock, kita perlu mengejek fungsi terbuka. Begini caranya:
Python 3:
Python 2:
Contoh:
<code class="python">from unittest.mock import patch, mock_open @patch("builtins.open", new_callable=mock_open, read_data="data") def test_patch(mock_file): assert open("path/to/open").read() == "data" mock_file.assert_called_with("path/to/open")</code>
Ingat, dalam Python 3, tampung akan menghantar objek yang diejek sebagai hujah kepada fungsi ujian anda, manakala dalam Python 2, anda mesti menegaskan pada fail yang diejek secara eksplisit.
Atas ialah kandungan terperinci Bagaimana untuk Mengejek Objek yang Digunakan dalam Pengurus Konteks dengan unittest.mock?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!