Mengapakah `expect.to.throw` Gagal Menangkap Ralat Lempar dalam Ujian Mocha/Chai?

Linda Hamilton
Lepaskan: 2024-11-17 11:53:01
asal
795 orang telah melayarinya

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

Mocha / Chai expect.to.throw Tidak Menangkap Ralat yang Dilemparkan?

Dalam ujian node.js anda, anda mengalami kesukaran menggunakan expect.to Chai .lempar untuk mengesan ralat yang dilontar. Ujian secara konsisten gagal, melaporkan ralat yang dilemparkan. Walau bagaimanapun, jika anda merangkumkan ujian dalam blok cuba-tangkap dan menegaskan ralat yang ditangkap, ujian itu akan lulus.

Adakah jangkaan.buang tidak berfungsi seperti yang dijangkakan?

Untuk menyelesaikan isu ini, anda perlu lulus fungsi yang diharapkan, bukan hasil daripada fungsi tersebut panggilan:

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

Dalam pendekatan asal anda, anda telah melepasi hasil panggilan model.get('z') untuk dijangkakan. Untuk menguji sama ada fungsi membuang ralat, anda mesti menyediakan fungsi untuk jangkakan untuk memanggil dirinya sendiri. Kaedah bind mencipta fungsi baharu yang, apabila dipanggil, memanggil model.get dengan argumen yang dijangkakan.

Rujuk dokumentasi yang disediakan untuk penjelasan lanjut tentang kaedah bind.

Atas ialah kandungan terperinci Mengapakah `expect.to.throw` Gagal Menangkap Ralat Lempar dalam Ujian Mocha/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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan