Cucumber.js ile JavaScript BDD Testleri
JavaScript ve Cucumber kullanarak yazılan testler, genellikle Cucumber.js adlı framework kullanılarak gerçekleştirilir. Bu framework, BDD (Behavior-Driven Development) yaklaşımını destekler ve testlerin daha açık, anlaşılır ve işlevsel olmasını sağlamak için doğal dil kullanımına odaklanır.
JavaScript ve Cucumber kombinasyonuyla yazılan testlerin temel bileşenleri aşağıdaki gibidir.
Feature Dosyası
- Feature dosyası, testin amacını ve test edilen özellikleri açıklayan bir dosyadır.
- Tipik olarak
.featureuzantılıdır ve Gherkin dilini kullanarak yazılır.
Örnek bir .feature dosyası:
Step Definitions
- Step definitions, feature dosyasındaki her adımın JavaScript kodunu içerir.
- Bu adımlar, belirli bir işlevi gerçekleştiren fonksiyonlar olarak tanımlanır.
Örnek bir step definitions dosyası:
Runner Dosyası
- Runner dosyası, testlerin çalıştırıldığı ve feature dosyaları ile step definitions'ların bir araya getirildiği dosyadır.
Örnek bir runner dosyası:
Custom World
- Custom World, test senaryoları arasında veri paylaşmak ve testlerin durumuyla ilgili işlemleri gerçekleştirmek için kullanılır.
Örnek bir Custom World dosyası:
Cucumber.js Test Süreci
Cucumber.js, bu bileşenleri bir araya getirerek testleri çalıştırır ve feature dosyasındaki adımların her birini uygun step definitions ile eşleştirir.
Bu sayede testler, Gherkin dilini kullanarak daha anlaşılır ve işbirliğine uygun bir formatta yazılabilir.
Syntax Keyword'leri
Feature
Testini yapacağımız konunun başlığıdır.
Scenario
Testini yazacağımız olayı bu senaryo ismi ile anlatmaya çalışırız. Diğer senaryo isimlerinden farklı olmalıdır.
Given
Senaryo sahnesini tanımlamak için kullanılır.
When
Bir olayı veya eylemi tanımlamak için kullanılır.
Then
Beklenen sonucu tanımlamak için kullanılır.
Örnek Gherkin Yapısı
Yukarıdaki keyword'leri bir arada düşündüğümüzde temel bir Cucumber senaryosu şu şekilde oluşturulabilir:
```Feature: Kullanıcı giriş işlemi Scenario: Başarılı kullanıcı girişi ``` Given Kullanıcı giriş sayfasını açar When Geçerli kullanıcı bilgilerini girer Then Kullanıcı ana sayfaya yönlendirilir
Burada Feature test edeceğimiz özelliği, Scenario test senaryosunu, Given başlangıç durumunu, When gerçekleştirilen işlemi ve Then ise beklenen sonucu ifade eder.





