2013-07-24 38 views
5

Veritabanımıza erişen sınıflarımızı test etmek için JUnit ile bazı testler yazmam gerekiyor, bazıları yeni öğeler eklemek için oldukça basit (bir öğe listesi seçin), diğerleri yeni SQL öğeleri biliyorsunuz.Junit: test sorgusu sınıfları

Şimdi benim sorum şu, testlerimi yazarken aklımda tutulması gereken bazı şeyler neler?

Örneğin: veritabanı sınıfı öğeleri bir tablodan getiriyor, geçerli kimlikleriyle, geçersiz kimlikleriyle test edebilirim ama başka ne var?

Özetle, özetlemek gerekirse: sorgu sınıflarınızı en iyi nasıl test edersiniz? Ben

cevap

2

:) biraz paslı değilim bu yüzden herhangi bir test yazdım beri

Bir süre olmuştur sadece SQL sorguları test ediyorsanız, şunları yapabilirsiniz

  • Run sorguların her biri içinde (Bahsettiğiniz gibi) başarılı senaryo geçersiz kimlikleri seçmek doğru ifadeleri
  • olup olmadığını kontrol etmesi
  • takın (PK veya benzersiz anahtarına göre) yinelenen kayıtları
  • bir nul koyamazsınız emin olun NULL olmayan alanlarda.
  • Üstelik bu iş herhangi bir doğrulama bir String önlemek için
  • Sil geçersiz kimlikleri (başarısız? Ya da sadece satır var olmadığını görmezden gerekir?)
  • Doğrulama herhangi kontroller Eğer bir sütun üzerinde var saklanacak Daha kısa varchar sütun?

Sorguların ilk mermi noktasından daha fazlasını yapmadım, ancak bazı ek senaryoların test edilmesinde bir miktar değer görebiliyorum.

Bu tür bir bütünleştirme testleri için iyi bir uygulama, her bir sınamanın yalıtılmasının garanti edileceğinden, her bir sınava yönelik olarak ihtiyacınız olan verileri eklemek için DB'yi siler. Java kullanıyorsanız, bunu yapmak için DBUnit gibi bir çerçeve kullanabilirsiniz. Başka bir iyi uygulama, DB'nin silinmesi ve test verilerinin oluşturulmasının'dan önce her testin yerine geçmesi koşuluyla yapılmasıdır. Bu, bir test başarısız olursa, test başarısız olduğunda DB'ye sahip olmanızın avantajına sahiptir.

Test edebileceğiniz başka bir şey, DAO düzeyinde yaptığınız her türlü veri dönüşümüdür (örneğin, virgülle ayrılmış değerlerin listesini içeren bir varchar sütunu ve bunu bir dize olarak bırakmak yerine bunu bir Listeye dönüştürürsünüz). .

+1

Bazı çok yararlı işaretçiler :) Bu en iyi cevapsa, kabul edeceğim ama daha fazla ipucu içerip gelmediğini görmek için biraz bekleyeceğim :) ama her durumda teşekkürler :) – darkownage