Cześć.
Zabrałem się za naukę testów jednostkowych i napotkałem pewien problem. Otóż mam liste, gdzie powrzucałem obiekty:
ofertaPracyList.add(new OfertaPracy("Warszawa", 3000, Set.of("Java", "SQL"), 2));
utworzyłem też metodę, która tworzy listę ze wszystkimi nazwami miast jakie wystepują w liście oferty pracy (przyjmuje liste jako argument):
public Set<String> wszystkieRozneMiasta(List<OfertaPracy> ofertyPracy) {
Set<String> rozneMiasta = new HashSet<>();
for (OfertaPracy ofertaPracy : ofertyPracy) {
rozneMiasta.add(ofertaPracy.getMiasto());
}
return rozneMiasta;
i chcę to teraz przetestować:
@org.junit.Test
public void wszystkieRozneMiastaJestPrawdziwa2() {
//given
Set<String> rozneMiastaOczekiwanyWynik = Set.of("Warszawa", "Wrocław", "Kraków", "Białystok", "Gdańsk", "Lublin");
//then
Assert.assertEquals(rozneMiastaOczekiwanyWynik, ofertaPracySerwis.wszystkieRozneMiasta(ofertaPracyList));
}
Test przechodzi prawidłowo, jednak wystarczy, że któreś miasto napiszę z małej litery i test jest failed, a warszawa i Warszawa to "to samo" w sumie :) . Więc mam pomysł aby wstawić toLowerCase(). tylko nie mam pojęcia gdzie to w tym teście lub tej metodzie wstawić. Czy może powinienem to w ogóle jakoś inaczej rozwiązać?