SORU
9 EKİM 2008, PERŞEMBE


Nasıl bir birim hashCode-eşittir sözleşme test yapmalıyım?

Özetle, hashCode sözleşme, Java'nın nesneye göre.() hashCode:

  1. Karma kodu etkileyen bir şey eşit olmadığı sürece değiştirmek gerekmez mi() değiştirir
  2. () eşit karma kodlar = = var anlamına gelir

Hadi ilgi öncelikle değişmez veri nesneleri - bilgilerini asla #1 tutmak için kabul edilir şekilde inşa edilmiştir, sonra değişiklikleri kabul. #2 yaprak: sorun sadece eşittir = = hash kodu. anlaşılacağı onaylayan biri

Açıkçası, bunu ayarlamak basit küçük olduğu sürece akla gelebilecek her veri nesnesi test edemeyiz. Ortak durumlarda yakalamak için büyük olasılıkla bir birim test yazmak için en iyi yolu nedir?

Bu sınıfın örnekleri, değişmez olduğu için, böyle bir nesne oluşturmak için sınırlı yol vardır; bu birim test mümkünse hepsini kapsamalıdır. Kafamın üst kapalı, giriş noktaları kurucular, kaldırma ve alt kurucusunu çağırmak sorununa indirgenebilir olmalıdır) kurucusu.

[Araştırma yoluyla kendi soruma cevap vermeye çalışacağım. Diğer StackOverflowers giriş bu işlem için hoş bir güvenlik mekanizması.]

[OO bu diğer diller için geçerli olabilir, bu etiketi ekliyorum.]

CEVAP
11 EYLÜL 2009, Cuma


EqualsVerifier nispeten yeni bir açık kaynak projesidir ve sözleşme eşittir test çok iyi bir iş yok. GSBase gelen EqualsTester issues yok. Kesinlikle tavsiye ederim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Police

    Android Poli

    21 NİSAN 2010
  • Boiler Room

    Boiler Room

    10 Mayıs 2012
  • booba1234

    booba1234

    22 Temmuz 2006