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ış.
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.
Unit test aracı olarak ben xUnit kullancağım. Başka unit test provider desteği de mevcut. Nuget ile SpecFlow.xUnit kuracağız.
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
Ardından adımlar (Step) unit teste dönüştürüyoruz.
unit testimizi yazıp çalıştıracağız. burada güzel olanda değerleri senario file dan alacak olması.
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