2.1. Fehlende Unit-Tests
Für die Übungsaufgaben am Ende von Lektion 1 möchte ich als erstes ein paar mögliche Lösungen geben.
Bei der Methode getChildren() können wir so vorgehen:
- Wir legen ein Level mit einem GameObject an.
- Danach prüfen wir, ob getChildren() die Liste mit den GameObjects zurückliefert.
/**
* Tests the getObjects method.
*/
@Test
public void testGetChildren() {
Level level = new Level("TestLevel", 1000, 1000);
GameObject obj = GameObject.builder().name("TestObject").size(new RectangleSize(10, 10)).build();
level.addObject(obj, 1, 2);
assertEquals(level.getObjects(), level.getChildren());
}
Hier kann das Vorgehen einfach sein:
- Wir erstellen ein Level mit einem GameObject.
- Dann versuchen wir, ein weiteres GameObject zu löschen, das wir aber nicht hinzugefügt haben.
- Danach prüfen wir, ob die Anzahl der Elemente stimmt und das erste Objekt noch in der Liste enthalten ist
/**
* Tests remove does not throw an exception on Object that is not inside the Instance.
*/
@Test
public void testRemoveOfNotAddedObject() {
Level level = new Level("TestLevel", 1000, 1000);
GameObject obj1 = GameObject.builder().name("TestObject").size(new RectangleSize(10, 10)).build();
level.addObject(obj1, 1, 2);
GameObject obj2 = GameObject.builder().name("TestObject2").size(new RectangleSize(10, 10)).build();
level.removeObject(obj2);
assertEquals(1, level.getObjects().size());
}