Rumah >pembangunan bahagian belakang >Tutorial Python >Penyelesaian kepada ralat puting beliung Pengecualian (\'Tidak mendapat pengecualian yang dijangkakan\')
. pengecualian yang diharapkan tidak dilemparkan. Mungkin program itu tidak berkelakuan seperti yang diharapkan, atau pengecualian sedang ditangkap dan tidak dihantar ke rangka kerja ujian.
Cara menyelesaikan
Pastikan program berjalan seperti yang diharapkan. Semak sama ada kod itu betul dan sama ada terdapat kelemahan yang menyebabkan pengecualian tidak dibuang. Pastikan pengecualian tidak ditangkap. Dalam program, pengecualian ditangkap tanpa dihantar ke rangka kerja ujian. Pastikan tiada pernyataan yang menarik pengecualian dalam kod ujian anda. Gunakan kaedah AsyncTestCase.assertRaises() Tornado untuk menegaskan bahawa pengecualian telah dilemparkan. Kaedah ini memastikan bahawa pengecualian yang dijangkakan dilemparkan dalam kod tak segerak. Jika tiada pengecualian dilemparkan, atau pengecualian yang dilemparkan bukan pengecualian yang dijangkakan, adalah disyorkan untuk menyemak semula kod, nyahpepijat atur cara dan cuba memahami status dan gelagat atur cara semasa ia dijalankan.
Ya, berikut ialah contoh ujian unit menggunakan kaedah AsyncTestCase.assertRaises() Tornado:
import tornado.testing import tornado.WEB class MyHandler(tornado.web.RequestHandler): async def get(self): raise ValueError("This is a test exception") class MyTestCase(tornado.testing.AsyncTestCase): async def test_exception(self): app = tornado.web.Application([(r"/", MyHandler)]) self.assertRaises(ValueError, self.fetch, '/')
Dalam contoh ini, kami mentakrifkan kelas MyHandler yang akan membuang pengecualian ValueError apabila kaedah get dilaksanakan. Kemudian kami mentakrifkan kaedah test_exception dalam MyTestCase Dalam kaedah ini, kami menggunakan kaedah self.assertRaises(ValueError, self.fetch, '/') untuk menegaskan bahawa pengecualian ValueError dibuang.
Jika program berjalan seperti biasa, ujian unit akan lulus. Jika pengecualian yang dijangkakan tidak dilemparkan, ralat "Pengecualian("Tidak mendapat pengecualian dijangka")" akan dilemparkan.
Atas ialah kandungan terperinci Penyelesaian kepada ralat puting beliung Pengecualian (\'Tidak mendapat pengecualian yang dijangkakan\'). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!