Jasmine ile Behavior Driven Development                      Osman Yüksel – jstanbul 2012
JavaScript uygulamamı neden test etmeliyim?Diğer dillerle yazdığınız uygulamaları neden test ediyorsunuz?JavaScript, bir w...
TDD nedir?Yeşilden önce kırmızıyı görmek- Herhangi bir kod yazmadan, önce testini yazıp,  bu testin başarısız olduğunu(kır...
Neden TDD?Sizi daha iyi bir tasarıma zorlar- Daha modüler- Daha tekrar-kullanılabilir (reusable)- Daha test edilebilirHazı...
TDD ne değildir?“Boşa harcanan zaman”- Eğer ürünü geliştirmeye devam edecekseniz, o zamanın çok daha fazlasını  kodun bakı...
BDD nedir?TDD “yazılımcı gözünden test” iken, BDD “kullanıcı gözünden test” demektir- BDD :Kullanıcı siteye girince “Hoşge...
Jasmine BDDTarayıcıda çalışabilir, komut satırında bir şeyler yapmanız gerekmez.Dolayısıyla “kolay”dırAma yine de komut sa...
Jasmine BDDhttps://github.com/pivotal/jasmine/qasmine çıktısı
Jasmine BDD
Jasmine BDD
Jasmine BDD
Jasmine BDD
Jasmine BDD
Jasmine BDD
Jasmine - Matchers
Jasmine - SpiesBir sınıfı “izlemek için”Bir sınıfı “mock”lamak için
Jasmine - Spies
Jasmine – Asenkron SpeclerJavaScriptte her şey tek thread üzerinden çalışırAma istekler asenkron çalışabilir (event loop)-...
Jasmine – Asenkron Specler
Jasmine – Asenkron Specler
qasmineTart mutfağında, el değmeden hazırlanmıştırJasmine speclerini komut satırından çalıştırabilen, bir Qt C++ uygulamas...
Kaynakçahttp://www.cihataltuntas.com/?p=37http://hendryluk.wordpress.com/2009/07/17/bdd-tdd-done-right/http://www.youtube....
“Talk is cheap, show me the code”  Hoppity Hop! @ Facebook Puzzles– http://www.facebook.com/careers/puzzles.php?puzzle_id=...
Web eğitimi sadece ülkemizde değil, dünyanın çoğu yerinde çok kötü.W3, bunun için Web Education Communityyi kurduhttp://ww...
Sorular?
yuxel@sonsuzdongu.com    http://yuxel.netm    https://github.com/yuxel    http://twitter.com/yuxel    http://friendfeed.co...
Upcoming SlideShare
Loading in …5
×

Jasminebdd

1,329 views

Published on

Jasmine İle BDD @ jstanbul 2012

Published in: Technology, Design
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,329
On SlideShare
0
From Embeds
0
Number of Embeds
35
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Jasminebdd

  1. 1. Jasmine ile Behavior Driven Development Osman Yüksel – jstanbul 2012
  2. 2. JavaScript uygulamamı neden test etmeliyim?Diğer dillerle yazdığınız uygulamaları neden test ediyorsunuz?JavaScript, bir web ürününün, son kullanıcının gördüğü en önemli bölümlerinden biridir.Yapılacak en ufak hata, sitenin tamamiyle çalışmamasına sebep olabilir.“Herhangi bir yerde console.log kullanmak yerine, bunun testini yazın”Dolayısıyla, JavaScript de en az diğer diller kadar saygıyı hak ediyor.
  3. 3. TDD nedir?Yeşilden önce kırmızıyı görmek- Herhangi bir kod yazmadan, önce testini yazıp, bu testin başarısız olduğunu(kırmızı) görmek mKırmızıyı yeşile çevirmeye çalışmak- Başarısız olan testi, başarılı yapacak minimum kodu yazarak, testi başarılı(yeşil) hale getirmekAma her zaman yeşili de kırmızı yapabilecek durumlar yaratmaya çalışmak- Daha sonra, başarılı testi başarısız yapacak yeni testler ekleyerek kodu değiştirmekEn sonda mavide huzur bulmaktır- Bu sırada kodun kalitesini çalışan yapıyı bozmadığından emin olarak arttırmak (Refactoring)
  4. 4. Neden TDD?Sizi daha iyi bir tasarıma zorlar- Daha modüler- Daha tekrar-kullanılabilir (reusable)- Daha test edilebilirHazır dokümantasyon!- Testler, en güzel dokümantasyonlardır“Abi ben düzgün yazdım, Mehmetin yazdığı kod patlatmış”- Regression test hayat kurtarır
  5. 5. TDD ne değildir?“Boşa harcanan zaman”- Eğer ürünü geliştirmeye devam edecekseniz, o zamanın çok daha fazlasını kodun bakımı için harcamak zorunda kalabilirsiniz“Daha önce yazılmış kodu, test eder”- Henüz yazılmamış kodun testini içerir. Kodun testi değil, testin kodu vardır“Her soruna çözümdür”- Testler de yanlış/eksik olabilir. Kodda çıkan bir bug aslında yanlış/eksik bir testtir
  6. 6. BDD nedir?TDD “yazılımcı gözünden test” iken, BDD “kullanıcı gözünden test” demektir- BDD :Kullanıcı siteye girince “Hoşgeldiniz” mesaj kutusu açılsın- TDD: DomReady eventi trigger edildiğinde, app.showWelcomeMessage() çağırılsınSöz dizimi (syntax) daha “insani”dir. m- “We write the specs in English, BDD” - Beatless 2012- http://www.youtube.com/watch?v=pvJi1E730HATDDnin evrim geçirmişi falan değildir, TDDnin ta kendisidir- Google.com → “TDD done right”
  7. 7. Jasmine BDDTarayıcıda çalışabilir, komut satırında bir şeyler yapmanız gerekmez.Dolayısıyla “kolay”dırAma yine de komut satırından bir şey yapmak isterseniz “qasmine” var ;)DOMa ve başka bir frameworke bağımlılığı yokturRubynin Rspeclerine çok benzer bir söz dizimi vardırSadece web için değil, JavaScriptin çalıştığı neredeyse her yerde kullanılabilir
  8. 8. Jasmine BDDhttps://github.com/pivotal/jasmine/qasmine çıktısı
  9. 9. Jasmine BDD
  10. 10. Jasmine BDD
  11. 11. Jasmine BDD
  12. 12. Jasmine BDD
  13. 13. Jasmine BDD
  14. 14. Jasmine BDD
  15. 15. Jasmine - Matchers
  16. 16. Jasmine - SpiesBir sınıfı “izlemek için”Bir sınıfı “mock”lamak için
  17. 17. Jasmine - Spies
  18. 18. Jasmine – Asenkron SpeclerJavaScriptte her şey tek thread üzerinden çalışırAma istekler asenkron çalışabilir (event loop)- Timer eventlerini dinlemek- XHR(AJAX) requestlerini dinlemekDolayısıyla bu tip durumları “test” edebilmek için bazı özel şeyler yapmamız gerekir
  19. 19. Jasmine – Asenkron Specler
  20. 20. Jasmine – Asenkron Specler
  21. 21. qasmineTart mutfağında, el değmeden hazırlanmıştırJasmine speclerini komut satırından çalıştırabilen, bir Qt C++ uygulamasıContinious integration ve git hookları için hazırlandıhttp://github.com/tart/qasmine
  22. 22. Kaynakçahttp://www.cihataltuntas.com/?p=37http://hendryluk.wordpress.com/2009/07/17/bdd-tdd-done-right/http://www.youtube.com/watch?v=pvJi1E730HAhttp://pivotal.github.com/jasmine/http://github.com/tart/qasminehttp://github.com/yuxel/ggmockSunum dosyasıhttps://github.com/yuxel/presentationshttp://slideshare.net/yuxel/jasminebdd
  23. 23. “Talk is cheap, show me the code” Hoppity Hop! @ Facebook Puzzles– http://www.facebook.com/careers/puzzles.php?puzzle_id=7– bit.ly/PX6hu8
  24. 24. Web eğitimi sadece ülkemizde değil, dünyanın çoğu yerinde çok kötü.W3, bunun için Web Education Communityyi kurduhttp://www.w3.org/community/webed/Eğitim dökümanları, üniversiteler ile ilişkiler vs.Türkiye topluluğu da var, çeviri bekleyen bir çok belge var.Bekleriz ;)
  25. 25. Sorular?
  26. 26. yuxel@sonsuzdongu.com http://yuxel.netm https://github.com/yuxel http://twitter.com/yuxel http://friendfeed.com/yuxel

×