CodeBlanks Logo Icon CodeBlanks

assert

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

index.js
// 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

index.js
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

Soru
assert.____(topla(2, 3), 5);
Cevap
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?

index.js
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.

Orta seviye bölümündeki tüm dersler