Тест JUnit для метода @Override - PullRequest
1 голос
/ 13 февраля 2020

У меня есть программа, содержащая следующий класс:

  public class Plane implements Flyable
{
    private final int numberOfEngines;
    private final String model;

    public Plane(int engines, String m)
    {
        numberOfEngines = engines;
        model = m;
    }

    @Override
    public String toString()
    {
        return String.format("%s with %d engines", model, numberOfEngines);
    }

    @Override
    public void launch() {
        System.out.println("Rolling until take-off");

    }

    @Override
    public void land() {
        System.out.println("Rolling to a stop");

    }
}

И в настоящее время я пытаюсь написать тесты JUnit для методов toString, launch и land. Это то, что у меня есть:

class PlaneTest {

    @Test
    void testToString() {
        assertEquals("Boing with 4 engines", Plane.this.toString());
    }

    @Test
    void testLaunch() {
        fail("Not yet implemented");
    }

    @Test
    void testLand() {
        fail("Not yet implemented");
    }

Моя проблема в том, что я не могу на всю жизнь понять, как правильно вызывать метод toString в классе Plane. Единственный способ, которым Eclipse показывает мне метод toString - это «this» перед ним, однако я не могу понять, как создать экземпляр Plane для его использования. Я потратил слишком много времени, пытаясь обернуть мою голову вокруг этого, так что, если кто-то может помочь мне здесь, это будет очень ценно. Заранее спасибо!

1 Ответ

2 голосов
/ 13 февраля 2020

Вам нужно вызвать его с экземпляром Plan, потому что toString() не является stati c и потому, что вам нужно инициализировать членов класса.

@Test
void testToString() {
    assertEquals("Boeing with 4 engines", new Plane(4, "Boeing").toString());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...