Promises & Closures
Promises & Closures: Promise Akışı — pending → fulfilled/rejected Promise ve Closure, JavaScript'in en temel iki kavramıdır ve ikisi de Playwright testlerinin derininde çalışır.
Promise Akışı — pending → fulfilled/rejected
Promise ve Closure, JavaScript'in en temel iki kavramıdır ve ikisi de Playwright testlerinin derininde çalışır. Promise, bir restoran numaracısı gibidir: masaya oturduğunda numara alırsın, yemek hazır olunca titreşir — "bekle, bitince haber veririm" sözü. `pending` (hazırlanıyor), `fulfilled` (hazır), `rejected` (iptal) üç durumu vardır. Peki neden Java'da bu kavram yok? Java multi-thread olduğundan `CompletableFuture` benzer bir rol oynar, ama callback zincirleri `.thenApply()/.thenCompose()` syntax'ı Promise kadar okunabilir değildir. Closure ise, çantasını kapıda bırakan birinin ceplerindeki malzemelere (gizli değişkenlere) hâlâ sahip olması gibidir: fonksiyon döndürülmüş, dış scope kapanmış, ama iç fonksiyon dıştaki değişkenleri hatırlamaya devam eder. QA'da closure, test fixture'larını ve config değerlerini fonksiyonlar arasında saklamak için kullanılır.
Promise & Closure Örnekleri
// 1. Bir Promise Tanımlama (Dondurma Sözü) const iceCreamPromise = new Promise((resolve, reject) => { const isReady = true; if (isReady) resolve('🍦 Dondurma Hazır!'); else reject('😢 Dondurma Kalmadı.'); }); // 2. Closure Örneği (Sırt Çantası / Private Değişken) function createBackpack() { let toy = '🧸 Ayıcık'; // Dışarıdan erişilemeyen private değişken return { getToy: () => toy, setToy: (newToy) => { toy = newToy; } }; } const myBackpack = createBackpack(); console.log(myBackpack.getToy()); // '🧸 Ayıcık'
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
JavaScript QA kodunu guvenli yazma ve test etme sirasi nedir?
🎬 Bir Promise'in Üç Hali: Pending → Resolved/Rejected → then/catch