Rumah > hujung hadapan web > tutorial js > Mengapakah `expect.to.throw` Gagal Menangkap Ralat yang Dilontar dalam Chai?

Mengapakah `expect.to.throw` Gagal Menangkap Ralat yang Dilontar dalam Chai?

DDD
Lepaskan: 2024-11-27 09:09:10
asal
337 orang telah melayarinya

Why Does `expect.to.throw` Fail to Catch Thrown Errors in Chai?

Mocha / Chai expect.to.throw: Memahami Cara Ia Berfungsi

Dalam ujian, adalah penting untuk memastikan ralat dilemparkan seperti yang diharapkan . Walau bagaimanapun, pengguna sering menghadapi cabaran dengan jangkaan.membaling Chai, gagal menangkap kesilapan yang dilontar dengan betul. Mari kita mendalami mengapa perkara ini berlaku dan cara menyelesaikannya.

Masalah timbul apabila terus melepasi hasil panggilan fungsi untuk jangkakan.ke.buang. Contohnya, expect(model.get('z')).to.throw(...). Dalam kes ini, anda menegaskan pada nilai pulangan model.get('z'), bukan lontaran sebenar ralat.

Untuk menyelesaikan isu ini, anda perlu menghantar fungsi yang mengharapkan panggilan untuk mengharapkan. Fungsi ini kemudiannya akan memanggil model.get dengan hujah yang sesuai. Pertimbangkan kod berikut:

expect(model.get.bind(model, 'z')).to.throw('Property does not exist in model schema.');
Salin selepas log masuk

Di sini, model.get.bind(model, 'z') mencipta fungsi baharu yang, apabila dipanggil, memanggil model.get dengan hujah 'z', menyelesaikan masalah.

Memahami tingkah laku ini adalah penting untuk menggunakan expect.to.throw dengan berkesan. Ingat untuk lulus fungsi yang akan mendorong ralat yang dijangkakan, memastikan ujian yang tepat bagi senario pengendalian ralat.

Atas ialah kandungan terperinci Mengapakah `expect.to.throw` Gagal Menangkap Ralat yang Dilontar dalam Chai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan