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
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.

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