17 Ocak 2014 Cuma

Specflow ile .NET uzerinde BDD

Bir muddettir kendi kabugumda kalip surekli uretim yapmak yuzunden herseyden cok geri kalmisim. Simdi acigi kapatma zamani. Cok konu var yakalamam gereken birden tamamen farkli bir ortama bakinca birseyleri anlamak cok da kolay olmuyor. O yuzden gecisi su sekilde planladim.

Once bildigim ortamda ortak olan konulari ogrenmeye calisacagim. Dolayisiyla beynimi once ortama alistirmak icin .NET uzerinde MVC yapisina uyum saglayip, testleri burada yazacagim. Sonra yapiya uyum sagladigimda geriye sadece isletim sistemi ile dil kalmis olacak.

Bu yuzden halihazirda kendim icin yazdigim ama henuz bitirmedigim programi yeni yapilar ile yazmaya karar verdim. Normalde VB.NET kullanmama ragmen C# a da asinayim dogal olarak. Ancak simdiye kadar sadece bakim yaptim yani hic yeni proje gelistirmedim.
git bash

Catiyi su sekilde kuruyorum.
DilC#
OrtamMVC4
Yazilim ortamiVisual Studio 2010
Data baglantisiEntitiy Framework
BDDSpecflow
Unit TestMsTest.2010
Versiyon Kontrolgit ve bitbucket.com

Simdi adim adim ne yaptigima gelince

  • Bende zaten kurulu oldugu icin Visual Studio 2010 kullanacagim
  • www.bitbucket.com da bir hesap actim. (isterseniz github.com dan da acabilirsiniz)
  • git-bash veya git for windows'u indirip kurdum
  • http://www.asp.net/mvc/mvc4 adresinden MVC 4 u indirip kurdum 
    • (Bu arada MVC 5.1 cikti tabi http://www.asp.net/mvc/overview/releases/mvc51-release-notes)
    • Install-Package Microsoft.AspNet.Mvc -Version 5.1.0
  • http://visualstudiogallery.msdn.microsoft.com/9915524d-7fb0-43c3-bb3c-a8a14fbd40ee adresinden specflow'u indirip kurdum.
  • Diskte proje icin bir klasor actim
  • bitbucket'e login olup "create repository" ile bir repo actim
  • Git bash'a girip, Proje klasorune gectim. (cd ile eski usul :)) 
  • sirayla su komutlari calistirdim
  • git init
  • git remote add origin https://username@bitbucket.org/user/repo.git 
  • yukaridaki kirmizi alani kendi  bilgilerinizle degistirin. 
  • Visual Studio acip yeni bir proje actim. Visual C# / Web / ASP.NET MVC 4 Application 'u sectim ve klasor olarak yukaridaki actigim klasoru sectim. 
  • Sonraki ekranda Select a Template bolumunde "Internet Application", View Engine'e "Razor", Create a unit test project bolumune bir isim verdim ve OK'e bastim
  • Razor'u secmemdeki temel etmen internette aradigimda TDD icin uygun olmasiydi
  • Visual studio icinden Tools/Library Package Manager / Package Manager Console  acip icinde "install-Package SpecFlow -ProjectName RM.Specs" yazip enter'a basarak yukledim. RM benim projemin adi bu arada 
  • sirayla sonra sunlari calistirdim
  • Install-Package SpecFlow.NUnit
    Install-Package SpecRun.SpecFlow
  • Test projesinin icinde Features diye bir klasor actim.
  • klasore sag tiklayarak add new item -> SpecFlow Feature File secerek Restaurant diye bir feature ekledim
  • Test projesinin icinde Steps diye bir klasor actim
  • Restaurant.feature dosyasi icinde herhangi birseyi henuz degistirmeden sag tiklayip acilan menude  "Generate Step Definition" i sectim. ve dosyayi Steps klasorune kaydettim
  • test projesindeki App.Config dosyasinda su degisikligi yaptim 
  • <specFlow>
        <!-- <unitTestProvider name="MsTest" /> -->
      <unitTestProvider name="MsTest.2010" /> 
    </specFlow>
  • Restaurant.feature dosyasi acikken visuaal studio'da  sag tiklayip Run Specflow Scenarios u secerek testlerin calismasini sagladim. 
  •  Test'ler Pending durumunda oldugu icin calismadilar ama Specflow Step'leri calisti. Yani bu asamaya kadar hersey dogru. 
Calisma ortamimiz hazir olduguna gore bu haliyle git'e atabilirim.
git bash ile proje klasorunun icindeyken 

git add .
git commit 
(mesajinimizi yaziyoruz) 
git push origin master 

Gelismeleri paylasacagim. 


Hiç yorum yok:

Yorum Gönder