SpecFlow test senaryoları neredeyse düz metin gibi okunabilen Gherkin dili ile yazılır. Gherkin yazımının asıl amacı okunduğunda herkes tarafından kolaylıkla anlaşılabilir olmasıdır.
Yazılımın gerçeklediği davranışın herkes tarafından anlaşılabilmesi ve sağladığı bu kolaylık sayesinde; iş analistinin oluşturduğu use case üzerinden BDD senaryoları oluşturmak ve bu senaryolar üzerinden paydaşlar ile ilişki kurmak daha yalın bir hale gelir.
SpecFlow senaryoları 3 farklı yöntem ile yazılabilir:
Sadece Metin Senaryo
Gherkin dili ile senaryo oluştururken kullanılan anahtar kelimeler senaryo adımlarının işlem sırasını belirtmek için kullanılır. Bu anahtar kelimeler satır başlarında bulunur ve renkleri diğer kelimelerden farklıdır.
Aşağıdaki senaryo örneğinde bir hesap makinesinin davranışları düz metin olarak oluşturulmuştur.
Yukarıdaki senaryo örneğinin adımları ise aşağıdaki gibi olacaktır:
Tek Parametre Senaryo
Senaryoda düz yazı ile belirtilmiş olan değişkenlerin yerine değişkenlerin kendisini parametre olarak göndererek senaryo oluşturulduğunda sonuç aşağıdaki gibi olacaktır.
Yukarıdaki senaryoda “And” anahtar kelimesi ile başlayan satırda bir değişiklik yapıldığını belirtmek isterim. Bunun amacı parametre olarak eklenen değişkenlerin adımlarda ‘(.*)’ olarak gösterilmesi nedeniyle “Given” ve “And” senaryo satırlarının adımlarının aynı olmasını engellemektir. Böyle bir durumda her iki satırda tek bir adımda tanımlanmaya çalışıldığı için karmaşıklığa neden olacaktır.
Yukarıdaki senaryonun adımları ise aşağıdaki gibi olacaktır.
Adımlar otomatik olarak üretildiğinde verilmiş olan parametreler için ‘p0′ isimli değişkenler tanımlar. Bu değişken isimlerini daha anlamlı olacak şekilde değiştirmek anlaşılabilirliği sürdürebilmek adına önemli olacaktır.
Düzenlediğimiz değişken isimlerinden sonra adımlar yukarıdaki gibi olacaktır.
Veri Seti Senaryo
Veri seti kullanarak yarattığımız senaryolar ile bir veya birden fazla test girdisi oluşturarak oluşturulan testin kilit noktalarında nasıl davrandığı test edilir. Bu senaryo yapısı kullanılarak aynı adımları kullanan testler tek bir senaryo ile koşulur ve tekrar engellenerek daha yalın bir test ortamı sağlanır.
Veri setleri kullanabilmek için “Scenario” anahtar kelimesi yerine “Scenario Outline” kullanılır. Kullanılmak istenen veri setini belirtmek için ise “Examples:” anahtar kelimesinden hemen sonra veri seti eklenir.
Değişkenleri senaryo içerisinde belirtmek için ‘< >’ karakterleri arasına veri setinde temsil edilecek değişken adları yazılarak, veri setindeki değişkenler ile senaryo aracılığı ile adımlara gönderilen parametreler eşlenir.
Yukarıdaki senaryonun, aşağıda verilen adımları bir önceki ile aynı olup değişikliğe gerek duyulmamıştır.
Önemli Not: Ancak bir anahtar kelime ile eşleştirilmiş senaryo satırında birden fazla parametre kullanılması durumunda oluşturulan adımlarda değişkenleri belirtmek için kullanılan ‘(.*)’ düzenli ifade de (‘) işaretleri kullanılmadan her bir değişken için sadece (.*) kullanılır.
Berk Toprakçı
Keytorc