Hallo ich möchte meinen Code durch Unit Tests absichern. Um eine Code Coverage zu bekommen nutze ich das Eclipse Plugin Emma.
Hier meine Beispiel Klasse :
Und hier mein Test zu dieser Klasse :
In der Code Coverage sind alle Methoden auf 100% bis auf hashCode und equals. Ich bin nun etwas ratlos. Kann mir jemand einen Tipp geben?
Vielen Dank
Hier meine Beispiel Klasse :
Java:
@RequiredArgsConstructor
@Getter
@EqualsAndHashCode(exclude = { "memberService", "teamService" })
@ToString(exclude = { "memberService", "teamService" })
public class UserClub implements Club {
@NonNull
@Setter
private String name;
private final Service<? extends Member> memberService = new UserMemberService();
private final Service<? extends Team> teamService = new ImporterTeamService();
}
Und hier mein Test zu dieser Klasse :
Java:
@Slf4j
public class UserClubTest extends TestCaseBase {
private UserClub club;
@Before
public void setup() {
club = new UserClub(clubName);
}
@Test
public void testConstructor() {
log.info("check all fields.");
Assert.assertNotNull(club.getName());
Assert.assertEquals(clubName, club.getName());
Assert.assertNotNull(club.getMemberService());
Assert.assertNotNull(club.getTeamService());
Assert.assertNotNull(club.toString());
log.debug("create the {}", club.toString());
}
@Test(expected = NullPointerException.class)
public void testConstructorInvalidParameterName() {
log.info("check that a NullPointerException occured for constructor with invalid parameter [name]");
new UserClub(null);
}
@Test
public void testSetName() {
log.info("check that the name can be changed.");
String newName = "newName";
club.setName(newName);
Assert.assertEquals(newName, club.getName());
log.debug("club with new name {}", club);
}
@Test(expected = NullPointerException.class)
public void testSetNameWithInvalidParameter() {
log.info("check that a NullPointerException occured during setting a NULL object as name.");
club.setName(null);
}
@Test
public void testEquals() {
UserClub club = new UserClub(clubName);
log.info("check that the two club objects are equals");
UserClub club2 = new UserClub(clubName);
log.debug("create the {}", club2.toString());
Assert.assertTrue(club.equals(club2));
Assert.assertTrue(club.hashCode() == club2.hashCode());
log.info("check that the two club objects are not equals because of a different name");
UserClub club3 = new UserClub("newclubName");
log.debug("create the {}", club3.toString());
Assert.assertFalse(club.equals(club3));
Assert.assertFalse(club.hashCode() == club3.hashCode());
log.info("check that the two club objects are not equals because of a NULL object");
Assert.assertFalse(club.equals(null));
}
}
In der Code Coverage sind alle Methoden auf 100% bis auf hashCode und equals. Ich bin nun etwas ratlos. Kann mir jemand einen Tipp geben?
Vielen Dank