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

  • AllYourNewsByMe

    AllYourNewsB

    18 Temmuz 2011
  • DanceOn

    DanceOn

    6 Mayıs 2006
  • TheRightTire

    TheRightTire

    14 EKİM 2009