Kornişon Dili: Format, Sözdizimi ve Kornişon Testi Cucumber

Kornişon Dili Nedir?

salatalık uygulama ayrıntılarına girmeden iş davranışını tanımlamanıza yardımcı olan iş için okunabilir bir dildir. Testleri tanımlamak için alan özel bir dildir. Cucumber özellikler için biçim. Kullanım durumlarını tanımlamak için sade bir dil kullanır ve kullanıcıların davranış testlerinden mantık ayrıntılarını kaldırmasına olanak tanır.

Kornişon dilindeki metin, otomatik testlerinizin dokümantasyonu ve iskeleti görevi görür. Gherkin formatı, 37'den fazla dilde mevcut olan TreeTop Dilbilgisini temel alır. Bu nedenle turşunuzu 37'den fazla konuşulan dilde yazabilirsiniz.

Bu komut dosyası iki temel amaca hizmet eder:

  • Belge kullanıcı senaryoları
  • Otomatik test yazma (BDD)

Neden Kornişon?

Gherkin'e olan ihtiyaç aşağıdaki görsellerle kolayca açıklanabilir

Kornişon'dan önce

Kornişon'dan önce

Gherkin'den sonra

Gherkin'den sonra

Kornişon Sözdizimi

Gherkin tıpkı YAML gibi çizgi odaklı bir dildir ve Python. Her satır adım olarak adlandırılır ve anahtar kelimeyle başlar ve terminallerin sonu bir duraktır. Girinti için sekme veya boşluk kullanılır.

Bu scriptte istediğiniz yere yorum eklenebilir ancak # işaretiyle başlaması gerekir. Ghrekin'in verilen, ne zaman, sonra vb. anahtar kelimelerini çıkardıktan sonra her satırı okur.

Tipik Kornişon adımları şuna benzer:

Gherkin Komut Dosyaları: İnsanın neden-sonuç kavramını, girdi/süreç/çıktı yazılım kavramına bağlar.

Kornişon Sözdizimi

Feature: Title of the Scenario
Given [Preconditions or Initial Context]
When [Event or Trigger]
Then [Expected output]

Bir Gherkin belgesinin .feature uzantısı vardır ve yalnızca süslü bir uzantıya sahip bir test dosyası vardır. Cucumber Gherkin belgesini okur ve yazılımın Gherkin sözdizimine göre davrandığını doğrulamak için bir test gerçekleştirir.

Kornişon'da Kullanılan Önemli Terimler

  • Özellikler(Hazırlık aşamasında)
  • Olayın Arka Planı
  • senaryo
  • Verilmiş
  • Ne zaman
  • Sonra
  • Ve
  • Fakat
  • Senaryo Taslağı Örnekleri

Özellik adı için adlandırma kuralı kullanılır. Ancak belirlenmiş kurallar yoktur Cucumber isimler hakkında.

Özellikler(Hazırlık aşamasında)

Dosyanın uzantısı .feature olmalı ve her özellik dosyasında yalnızca bir özellik bulunmalıdır. Özellik anahtar kelimesi Özellik ile birliktedir: ve bu eklemeden sonra bir boşluk ve özelliğin adı yazılacaktır.

senaryo

Her özellik dosyasında birden fazla senaryo bulunabilir ve her senaryo Senaryo: ile başlar ve ardından senaryo adı gelir.

Olayın Arka Planı

Arka plan anahtar sözcüğü senaryoya bağlam eklemenize yardımcı olur. Senaryonun bazı adımlarını içerebilir ancak tek farkı her senaryodan önce çalıştırılması gerektiğidir.

Verilmiş

Given anahtar sözcüğünün kullanımı, kullanıcı sistemle etkileşime geçmeden önce sistemi tanıdık bir duruma getirmektir. Ancak, "Önkoşul" adımında Verilmişse, Verilen adımlarda kullanıcı etkileşimlerini yazmayı atlayabilirsiniz.

Sözdizimi:

Given
Given - a test step that defines the 'context
Given I am on "/."

Ne zaman

Adım, kullanıcı tarafından gerçekleştirilen eylemi tanımlamak olduğunda.

Sözdizimi:

When
A When - a test step that defines the 'action' performed
When I perform "Sign In."

Sonra

'Sonra' anahtar sözcüğünün kullanımı şunu görmektir: sonuç When adımındaki eylemden sonra. Ancak yalnızca gözle görülür değişiklikleri doğrulayabilirsiniz.

Sözdizimi:

 Then
Then - test step that defines the 'outcome.'
Then I should see "Welcome Tom."

Ve ama

Birden fazla ne zaman veya Sonra verilmiş olabilir.

Sözdizimi:

But
A But - additional test step which defines the 'action' 'outcome.'
But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed
And I write  "EmailAddress" with "Tomjohn@gmail.com."

Verilen, Ne Zaman, Sonra ve, ancak test adımlarıdır. Bunları birbirinin yerine kullanabilirsiniz. Tercüman herhangi bir hata göstermiyor. Ancak okunduğunda kesinlikle bir anlam ifade etmeyeceklerdir.

Kornişon'da Kullanılan Önemli Terimler
Kornişon'da Kullanılan Önemli Terimler
Given The login page is opening
When I input username, password and click the Login button 
Then I am on the Homepage

Kornişon Örnekleri

Örnek 1:

Feature:  Login functionality of social networking site Facebook. 
Given:  I am a facebook user. 
When: I enter username as username. 
And I enter the password as the password 
Then I should be redirected to the home page of facebook 

Yukarıda bahsedilen senaryo, kullanıcı girişi adı verilen bir özelliğe aittir.

Gherkin, adım tanımlama dosyasında yazılı olan her adımı analiz edecektir. Bu nedenle adımlar özellik dosyasında verilmiştir ve adım tanımlama dosyasının eşleşmesi gerekir.

Örnek 2:

Feature: User Authentication Background:
Given the user is already registered to the website Scenario:
Given the user is on the login page
When the user inputs the correct email address
And the user inputs the correct password
And the user clicks the Login button
Then the user should be authenticated
And the user should be redirected to their dashboard
And the user should be presented with a success message 

Gherkin'i kullanmanın en iyi uygulamaları

  • Her senaryo ayrı ayrı yürütülmelidir
  • Her özellik birlikte yürütülebilmelidir
  • Adım bilgileri bağımsız olarak gösterilmelidir
  • Senaryolarınızı gereksinimlerinize bağlayın
  • Bir gereksinim belgesine hangi senaryoların dahil edilmesi gerektiğini tam olarak takip edin
  • Modüler ve anlaşılması kolay adımlar oluşturun
  • Tüm ortak senaryolarınızı birleştirmeye çalışın

Kornişonun Avantajları

  • Gherkin programcı olmayanların anlayabileceği kadar basittir
  • Programcılar bunu testlerine başlamak için çok sağlam bir temel olarak kullanabilirler
  • Kullanıcı Hikayelerinin anlaşılmasını kolaylaştırır
  • Gherkin scripti işletme yöneticileri ve geliştiriciler tarafından kolaylıkla anlanabilir
  • Gherkin Testing iş gereksinimlerini hedefler
  • İşlevsel özelliklerin önemli bir kısmı kullanıcı hikayeleri olarak yazılır
  • Küçük Gherkin komut setini anlamak için uzman olmanıza gerek yok
  • Gherkin Test durumları, kabul testlerini doğrudan otomatik testlere bağlar
  • Test senaryoları yazma stili, kodu diğer testlerde yeniden kullanmak daha kolaydır

Kornişonun dezavantajları

  • Yüksek düzeyde iş katılımı ve işbirlikleri gerektirir
  • Her senaryoda iyi çalışmayabilir
  • Kötü yazılmış testler, test bakım maliyetlerini kolaylıkla artırabilir

ÖZET

  • Kornişon, salatalık spesifikasyonlarının formatıdır
  • Gherkin tıpkı YAML gibi çizgi odaklı bir dildir ve Python
  • Gherkin Scripts, insanın neden-sonuç kavramını, girdi/süreç ve çıktı yazılım kavramına bağlar
  • Özellik, Arka Plan, Senaryo, Verilen, Ne Zaman, Sonra Ve Ama Gherkin'de önemli ölçüde kullanılır
  • Gherkin'de her senaryo ayrı ayrı yürütülmelidir
  • Gherkin'in en büyük avantajı programcı olmayanların anlayabileceği kadar basit olmasıdır
  • Gherkin Testi her türlü senaryoda iyi çalışmayabilir