SpecFlow Nedir? Cucumber Nedir? SpecFlow ile Test Yazmak. Faydaları , güzellikleri

SpecFlow nedir: Cucumber For .net diye açıklıyor. .net için salatalık diye çevirirsek bir yere varamıyoruz.

Cucumber nedir:  Java dünyası içinde  bulunan “* Düz metin olarak tanımlanmış kullanım senaryolarını otomatize edilmiş testlere dönüştüren bir araçtır.“. ve resim ile açıklamış.

behavior driven development witc cucumber

SpecFlow  bizi (.Net geliştiricilerini) bu güzellikten 60 tane dil desteği ile mahrum bırakmıyor.

Neden Gerekli: Tüm Testler gibi kod kalitesini artırmak ve geliştiriciyinin işini kolaylaştırmak. Ancak Cucumber/SpecFlow bir test kütüpanesinden çok derdimizi türkçe/ingilizce anlatıp bir yazım kuralına (syntax) bağlı kalarak test üretmemizi sağlıyor. Geliştirici  <-> iş analizi uzmanı iletişimin güçlendirdiği gibi bir test için dökümantasyonda sağlamış oluyor. Hemde kolayca kod ne yapmalı test , ne yapıyor anlayabiliyoruz

Nasıl Çalışıyor?

Öncelikle  Visual Studio 2015 SpecFlow eklentisini (extension) kuracağım.specFlow-vsExt-install

Unit test aracı olarak ben xUnit kullancağım. Başka unit test provider desteği de mevcut. Nuget ile SpecFlow.xUnit kuracağız.

specFlow.xunit-nuget

test senaryomuzu olusturmak için bir kaç adımımız var. Feature file olusturmak. Ardından içerisinde “senario” eklemek (birden fazla da eklenebilir). daha sonra “steps” tanımlamamızı oluşturmak ve islem tamam.

ilk adım. Feature file olusturma

add-feature-file

Ardından adımlar (Step) unit teste dönüştürüyoruz.def-steps

unit testimizi yazıp çalıştıracağız. burada güzel olanda değerleri senario file dan alacak olması.

specFlow-ile-mutlu-son SpecFlow ile hem ne yapmak istediğimizi yazdık. Hem test taslaklarımızı cıkarttık ,doldurduk, değerleri senaryodan aldı ve testimizi test explorer da da denediğimizde çalıştığını gördük.  Test anlatan dökümanlar hep böyle 2+2 gibi aslında hiç üzerine test yazılmayan şeyleri anlatıyor. Biraz daha gerçek hayat uygulamalrına yakın örnek yakında eklemeyi planlıyorum. Ben specflow ile selenium kullanıp arayüz testleri yazmakta kullancağız. orada surayatıkla bunu yap noktasında son derece güzel oluyor. Umarım faydalı olmuştur.

 

 

*Kaynak: http://dev.lucidcode.com.tr/confluence/display/JJE/Cucumber+ile+Behavior+Driven+Development

Bir cevap yazın