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