Merhaba, JSP / JDBC ve JSF / JPA projelerini nasil test ede bilirim? Bosluklarinin oldugunu nasil bilirim?

Her kisi kendi bilgisini paylasirsa sevinirim.

Önceden tesekkurler...

soruldu: 02 Eki '13, 11:59

java's gravatar image

java
284283339
cevap kabul oranı: 12%

değiştirildi: 03 Eki '13, 07:45

mahmut_can's gravatar image

mahmut_can ♦
2.9k62552


Proje bittiyse unit testlerden öte acceptance testlere yönelmen daha makul olur. Selenium yada Arqullian kullanabilirsin.

Aşağıdaki video'da buna dair güzel bir tutorial var izlemen yararlı olacaktır.

VIDEO TUTORIAL

permanent link

cevaplandı: 02 Eki '13, 16:29

Turgay%20Can's gravatar image

Turgay Can
8.4k63799
cevap kabul oranı: 18%

Merhaba. Her katmandaki sınıflara öncelikle unit test yazabilirsiniz. repository katmanı için unit test tek başına yeterli olmayabilir bu seviyede repositoryleriniz için integration test yazıp kontrol yapmanız faydalı olabilir. integration test için spring kullanıyorsanız eğer spring-test, java ee kullanıyorsanız arqullian gibi bir kütüphane ile context oluşturup testlerinizi burada çalıştırabilirsiniz. db testlerinde her seferinde db yeniden yaratma, silme, ekleme gibi işlemler yapılacağı için yerleşik bir db yerine test edeilen context içerisinde çalışacak bir in-memory db seçmeniz çok daha iyi olur. h2, derby vs. gibi örnekler var bunun için. jpa dialectleri de var, kolayca halledebilirsiniz. dbunit gibi kütüphaneler xml dosyalarından init datalar oluşturabiliyor otomatik olarak bunlar da faydalı olabilir.

ardından katmanlarınızın birbiri ile etkileşimleri için yine integration testler yazabilirsiniz. integration testler bütün parçaların birbiri ile tüm kombinasyonlarını test etmektense genelde bir akış üzerinden test etmek için faydalı olabilir. örneğin control ile model'i birbine bağlayan bir integration context içerisinde controldaki servisi valid, valid olmayan, default değerler için vs. çağırıp db ye sizin uygun gördüğünüz şekilde kayıt atmış mı atmamış mı diye bakabilirsiniz. integration testlerin kapsamı unit test kadar çok olmak zorunda değildir. adı üzerinde integrtaion/etkileşim ilişkisini kontrol etmelidir.

daha sonra işin içerisine view katmanına da dahil ederek uygulamanın tamamını ayağa kaldırarak bir use case'in test edildiği functional testleri sellenium gibi bir araçla test edebilirsiniz.

test ve ci işin içine girdiğinde bence maven gibi bir build aracı kullanmak şart hale geliyor. bu durumda da farklı testler için farklı profiller oluşturmanız gerekebilir. örneğin default profil içerisinde sadece unit testler çalışmalıdır ki build süresi mümkün olduğunca kısa tutulsun. Bunu test sınıflarınızı belirli bir suffix ( IntegrationTest gibi ) ile ya da farklı folderlara koyarak default build içerisinden exclude edebilirsiniz. Integration ve functional testler için de ayrı profiller tanımlayıp kullandığınız ci aracında ( bamboo, jenkins vs. vs. ) integration test profilini atıyorum 4 saatte bir, functional test profilini ise 24 saatte bir çalışır hale getirebilirsiniz. Unit testler ise mutlaka ama mutlaka her commit sonrası çalışmalıdır.

permanent link

cevaplandı: 07 Eki '13, 12:49

_____'s gravatar image

_____
146117
cevap kabul oranı: 0%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×281
×112
×86
×32

Soruldu: 02 Eki '13, 11:59

Görüntüleme: 1,165 kez

Son güncelleme: 07 Eki '13, 12:49

powered by BitNami OSQA