String & Sayı & Matematik

String & Sayı & Matematik: Template Literal Birleştirme Animasyonu String ve sayı manipülasyonu, test otomasyonunun günlük ekmeğidir: sayfadan element metnini okursun, trim edip

Template Literal Birleştirme Animasyonu

String ve sayı manipülasyonu, test otomasyonunun günlük ekmeğidir: sayfadan element metnini okursun, trim edip normalize edersin, fiyatları string'den number'a çevirirsin, assertion yazarsın. Template literal (backtick string), bu işleri dramatik ölçüde kolaylaştırır — Java'da `String.format("Merhaba %s, skorun %d", isim, skor)` yazdığın yerde JavaScript'te `` `Merhaba ${isim}, skorun ${skor}` `` yazarsın: çok daha okunabilir ve hata payı daha az. Peki neden bu kadar önemli? Locator string'leri oluştururken: `` `[data-testid="user-${userId}"]` `` şeklinde dinamik selector üretmek, `"[data-testid=\"user-" + userId + "\"]"` yazmaktan hem daha net hem de daha güvenlidir. Çok satırlı assertion mesajı yazarken de backtick'ler ve string birleştirme cehennemi olmadan çalışır. Java ile arasındaki asıl fark ise sayı tarafındadır ve sinsidir: Java'da `int` ile `double` ayrı tiplerdir, derleyici seni uyarır; JavaScript'te TEK bir `number` tipi vardır ve `"12" + 3` sana `"123"` verirken `"12" - 3` sana `9` verir. Sayfadan okuduğun fiyatı `Number()` ile çevirmeyi unuttuğunda test hata vermez — sessizce yanlış karşılaştırma yapar ve yeşil yanar.

En Sık Kullanılan String Metotları

Number & Math Metotları

Sayı Dönüşümleri ve Math Nesnesi

// ─── String → Number dönüşümleri ──────────────────────────── let strNum = "42"; console.log(Number(strNum)); // 42 ← güvenli dönüşüm console.log(parseInt("42px")); // 42 ← sayıyı parse eder, sonrasını atar console.log(parseFloat("3.14")); // 3.14 console.log(+"99"); // 99 ← unary + operatörü (kısa yol) console.log(Number("hello")); // NaN ← geçersiz dönüşüm // ─── Number metodları ───────────────────────────────────────── let price = 19.9876; console.log(price.toFixed(2)); // "19.99" — ondalık yuvarlama (string döner!) console.log(Number.isNaN(NaN)); // true console.log(Number.isFinite(1/0)); // false (Infinity) console.log(Number.isInteger(42.0)); // true // ─── Math nesnesi ──────────────────────────────────────────── console.log(Math.round(4.6)); // 5 console.log(Math.floor(4.9)); // 4 ← aşağı yuvarla console.log(Math.ceil(4.1)); // 5 ← yukarı yuvarla console.log(Math.abs(-15)); // 15 ← mutlak değer console.log(Math.max(1,9,3)); // 9 console.log(Math.min(1,9,3)); // 1 console.log(Math.random()); // 0–1 arası rastgele sayı console.log(Math.sqrt(16)); // 4

Micro Lab: JavaScript QA kod yazma

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

Adim Adim: JavaScript QA kod yazma

Amaci ve asenkron bagimliliklari oku

await / Promise zincirini dogru yere yerlestir

assertion veya beklenti satirini tamamla

Kodu calistirip console veya test ciktisini oku

Flaky olursa bekleme stratejisi veya retry ekle