Pernyataan Masalah:
Apabila mencuba ujian unit pada aplikasi Flask, memanggil 'before_request ' fungsi dari luar konteks aplikasi menimbulkan RuntimeError:
with patch('__main__.mysql.connector.connect') as mock_mysql_connector_connect: object = TestMySQL() object.before_request() # Runtime error on calling this
Punca Punca:
Flask menggunakan Konteks Aplikasi untuk mengurus data khusus permintaan. Apabila memanggil fungsi di luar konteks ini, seperti dalam ujian unit, sumber yang diperlukan tidak tersedia, membawa kepada ralat yang disebutkan di atas.
Penyelesaian:
Untuk menyelesaikan isu ini, ujian unit mesti dilaksanakan dalam Konteks Aplikasi. Ini boleh dicapai menggunakan penghias 'app_context()':
def test_connection(self): with app.app_context(): # Test code here
Sebagai alternatif, panggilan 'app_context()' boleh dirangkumkan dalam kaedah persediaan ujian.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan RuntimeError: Bekerja di Luar Konteks Aplikasi dalam Ujian Unit Flask?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!