Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan RuntimeError: Bekerja di Luar Konteks Aplikasi dalam Ujian Unit Flask?

Bagaimana untuk Menyelesaikan RuntimeError: Bekerja di Luar Konteks Aplikasi dalam Ujian Unit Flask?

DDD
DDDasal
2024-11-12 09:16:02630semak imbas

How to Resolve RuntimeError: Working Outside of Application Context in Flask Unit Tests?

RuntimeError: Bekerja di Luar Konteks Aplikasi

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn