Mam kilka metod powracających HashSet. Chciałbym, aby mój test jednostkowy sprawdził stan tych obiektów, tj. Potwierdził, że someObject.getName() == "foobar"
.HashSet w jednostce testuje
Jednak kolejność HashSet iterator nie jest gwarantowana, więc moje testy jednostkowe nie kilka razy. Jak pisać testy jednostkowe dla czegoś takiego?
Np
@Test
public void testRowsToBeRead(){
HashSet<SomeObject> rows = new SomeObject().read();
assertEquals(19, rows.size());
for(SomeObject r:rows){
//How do I confirm contents?
}
}
myślę, że przyjąłem odpowiedź zbyt szybko.
Problem mam teraz jest, że wdrożyliśmy metody equals, który sprawdza tylko dla 2 pól w obiekt za projekt (jest to naśladowanie tabelę DB). Jednak w moim badanej jednostki, chcę sprawdzić wszystkich dziedzinach, takich jak opis itp, które nie jest w moich rówieśników. Jeśli więc 2 pola zostaną zamienione, a te pola nie są w mojej równej wersji, to test jednostkowy daje fałszywy alarm.
'tak samo' i 'hashCode' muszą być zaimplementowane poprawnie, aby użyć tego podejścia (i użyć HashSet). – Genzer
@Genzer: Ups, dziękuję, masz rację. Zaktualizowałem odpowiedź ... – home
Mam już testy jednostek równych i kodów kreskowych, więc myślę, że to daje mi dokładnie to, czego szukam. – Kapsh