assert
- Node.js kursu
- Orta seviye
- Ders 83/116
- 5 dk
assert ile iddiaları öğrenirsin.
assert modülü
assert modülü bir testin başarılı veya başarısız olduğunu belirler. require("node:assert") ile içe aktarılır. En sık kullanılan yöntem assert.equal(gerçek, beklenen)'dir; iki değer eşit değilse hata fırlatır.
Örnek: assert.equal(1 + 1, 2) başarılıdır (hiçbir şey döndürmez). assert.equal(1 + 1, 3) ise AssertionError fırlatır; bu yüzden test başarısız sayılır. assert.strictEqual daha sıkıdır; eşitlik yanı sıra tür de denetler (ör. "5" ile 5'i farklı sayar). Test içinde iddialar peş peşe eklenir; herhangi biri başarısız olursa test durur.
Hata fırlatma denetimi
Bir fonksiyonun hata fırlatması beklenen bir davranış olabilir. assert.throws(fn) bir geri çağırma alır ve hata fırlatırsa başarılı sayılır; fırlatmazsa başarısız olur.
Örnek: assert.throws(() => { throw new Error("boom"); }) başarılıdır. assert.throws(() => { /* sessizce */ }) başarısız olur. Bir hata türü de belirtebilirsin: assert.throws(fn, /boom/) yalnızca mesajı /boom/ deseniyle eşleşen hataları kabul eder. Bu, geçersiz girdi için hata fırlatan fonksiyonları test etmenin standart yoludur. Önceki derste öğrenilen test() ile birleştirildiğinde eksiksiz bir test yazılır.
Uygulama Topla testini yaz
node:test'ten test'i, node:assert'i içe aktar. topla fonksiyonunu tanımla: function topla(a, b) { return a + b; }. test("topla", () => { assert.equal(topla(2, 3), 5); }) ile bir test yaz. console.log ile "İddia çalıştı" yazdır.
Başlangıç kodu
// test ve assert'i içe aktar
// buraya yaz
// topla fonksiyonunu tanımla
// buraya yaz
// test ve iddia
// buraya yaz
// "İddia çalıştı" yazdır
// buraya yazÖrnek çözüm
const { test } = require("node:test");
const assert = require("node:assert");
function topla(a, b) { return a + b; }
test("topla", () => {
assert.equal(topla(2, 3), 5);
});
console.log("İddia çalıştı");Beklenen çıktı
İddia çalıştı
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 equal çağrısını tamamla
assert.____(topla(2, 3), 5);
assert.equal(topla(2, 3), 5);
Açıklama: equal iki değeri karşılaştırır.
2 Yöntemi davranışına eşle
| Kavram | Anlamı |
|---|---|
equal |
İki değeri karşılaştırır |
strictEqual |
Tür dahil sıkı karşılaştırır |
throws |
Hata fırlatma beklentisi |
ok |
Doğruluk denetler |
3 assert.throws(fn) ne zaman başarısız olur?
assert.throws(() => {})- fn her zaman
- fn hiçbir zaman
- fn hata fırlattığında
- fn hata fırlatmadığında Doğru cevap
Açıklama: fn sessizce dönerse throws başarısız olur.