🌍 Gerçek Hayat / Real World
Gerçek Hayat / Real World: Diyelim bir e-ticaret sitesinin checkout akışını test ediyorsun: sepete ürün ekle, kupon uygula, ödeme yap, sipariş onayını gör.
Diyelim bir e-ticaret sitesinin checkout akışını test ediyorsun: sepete ürün ekle, kupon uygula, ödeme yap, sipariş onayını gör. Gerçek bir Cypress test suite'i bu akışı genellikle custom command'lar ve "App Actions" pattern'iyle parçalara ayırır — her testte UI üzerinden baştan login olmak yerine, oturumu API üzerinden önceden kurarak hem zaman kazanılır hem de testler birbirinden bağımsız hale gelir.
Custom Command + Checkout Testi
Micro Lab: Cypress — Assertion yazma
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
Adim Adim: Cypress — Assertion yazma
Neyi dogrulayacagini belirle: gorunurluk / metin / CSS / attribute
.should("be.visible") ile elementin gorunur oldugunu dogrula
.should("contain.text", "Giris Basarili") ile metin içeriğini kontrol et
.should("have.attr", "disabled") veya "href" ile attribute dogrula
Test fail ettiginde Cypress hata mesajini oku: expected X to ... but got Y
Cypress assertion yazma ve dogrulama sirasi nedir?
App Actions Pattern:
Page Object Model yerine, Cypress topluluğu giderek "App Actions" pattern'ini önerir: UI'da tıklayarak state hazırlamak yerine, uygulamanın kendi store'una (Redux/Zustand) doğrudan dispatch yaparsın. Örnek: cy.window().its('store').invoke('dispatch', { type: 'cart/addItem', payload: { id: 42 } }) — bu, sepete ürün eklemek için 5 UI adımını atlayıp testi saniyeler içinde hazırlar.
50 Testlik Suite — Cypress vs Selenium Çalışma Süresi