🌐 Network & cy.intercept()

Network & cy.intercept(): cy.intercept() (eski adıyla cy.route(), v6'dan beri kullanılmıyor), Cypress'in network katmanını yakalama API'sidir.

cy.intercept() (eski adıyla cy.route(), v6'dan beri kullanılmıyor), Cypress'in network katmanını yakalama API'sidir. Üç moda göre kullanılabilir: gerçek isteği "stub" ederek sahte veriyle değiştirmek, isteği değiştirmeden sadece "spy" olarak izlemek, ya da gecikme/hata simüle etmek. Bu, Selenium dünyasında ayrı bir proxy sunucusu (BrowserMob Proxy gibi) kurmadan asla yapamayacağın bir şeydir.

Stub ve Spy Kullanımı

Micro Lab: Cypress — API Intercept

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

Adim Adim: Cypress — API Intercept

Hangi endpoint yakalanacak belirle: URL pattern veya method + pattern

cy.intercept("GET", "**/api/users", { fixture: "users.json" }).as("getUsers") kur

cy.visit() veya aksiyonu tetikle, intercept'in ateşlenmesini bekle

cy.wait("@getUsers") ile istek gerceklesene kadar bekle

cy.get("@getUsers").its("response.statusCode").should("eq", 200) dogrula

Cypress ile API intercept kurma sirasi nedir?

cy.intercept() İstek Yaşam Döngüsü

Java'da network stub'lamak için WireMock/MockServer gibi ayrı bir HTTP sunucusu ayağa kaldırman, port çakışmalarını yönetmen ve testten önce/sonra başlatıp durdurman gerekir. Cypress'te cy.intercept() tarayıcının network katmanını doğrudan yakalar — ekstra sunucu yoktur.

Bu fark, Cypress'in "tek process içinde çalışma" mimarisinin doğrudan bir sonucudur — network katmanı zaten aynı tarayıcı içinde olduğu için yakalamak trivial hale gelir.