Cypress ve Cucumber JS

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 .feature uzantı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.

Daha yeni Daha eski