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

  • gadgetgal38

    gadgetgal38

    9 HAZİRAN 2009
  • The CGBros

    The CGBros

    20 AĞUSTOS 2011
  • Unbox Therapy

    Unbox Therap

    21 Aralık 2010