JAdventure - Kurs zur Softwareentwicklung
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

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.

Unit-Test für Level.getChildren()

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());
    }

Unit-Test, der das Löschen eines nicht vorhandenen Objects aus einem Level testet

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());
    }