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.');
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!