Ben HashSet dönen yöntemlerden bir grup var test eder. Ünite testimin bu nesnelerin durumunu kontrol etmesini isterim, yani someObject.getName() == "foobar"
'u onaylayın. Benim birim testleri bazı kere başarısız böylece HashSet yineleyici sıralaması garanti edilmez AncakHashSet
. Böyle bir şey için birim testleri nasıl yazarım?
Örn:
@Test
public void testRowsToBeRead(){
HashSet<SomeObject> rows = new SomeObject().read();
assertEquals(19, rows.size());
for(SomeObject r:rows){
//How do I confirm contents?
}
}
ben çok erken bir cevap kabul olabileceğini düşünüyorum.
Şimdi sahip sorun yalnızca tasarım başına nesne 2 alanlar (bir DB tablo taklit eden) için kontrol eşittir yöntemi uygulamaya olmasıdır. Ancak benim birim sınama, benim eşittir olmayan açıklama vb gibi tüm alanlar için kontrol etmek istiyorum. Yani 2 alan değiştiyse ve bu alanlar benim eşitlik uygulamasında değilse, birim testi yanlış bir pozitif verir.
'equals' ve' hashCode', bu yaklaşımı kullanmak için doğru şekilde uygulanmalıdır (ve HashSet kullanın). – Genzer
@Genzer: Ups, teşekkürler sağol. Cevabı güncelledim ... – home
Eşittir ve hashcode birimi testlerine zaten sahibim, bu yüzden bana tam olarak aradığım şeyi veriyor. – Kapsh