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