Как изменить, если и для утверждения в тесте - PullRequest
0 голосов
/ 28 января 2019

Этот тест проверяет правильность метода, который транспортные самолеты получают из списка военных самолетов.Как в тесте не использовать «for» и «if», а использовать assertTrue.Также нельзя использовать FLAG и Lambda.Рядом со всем этим должен быть один Assert.

@Test
public void testGetTransportMilitaryPlanes() {
    Airport airport = new Airport(planes);
    List<MilitaryPlane> transportMilitaryPlanes = airport.getTransportMilitaryPlanes();

    boolean flag = false;
    for (MilitaryPlane militaryPlane : transportMilitaryPlanes) {
        if ((militaryPlane.getMilitaryType() == MilitaryType.TRANSPORT)) {
            flag = true;
            break;
        }
    }
    Assert.assertEquals(flag, true);
}

Я так и сделал:

@Test
public void testGetTransportMilitaryPlanes() {
    Airport airport = new Airport(planes);
    List<MilitaryPlane> transportMilitaryPlanes = airport.getTransportMilitaryPlanes();

    MilitaryPlane militaryPlane = (MilitaryPlane) transportMilitaryPlanes;
    Assert.assertTrue(militaryPlane.getMilitaryType() == MilitaryType.TRANSPORT);

}

Но тест не проходит таким образом.И в оригинальной версии было правдой.

1 Ответ

0 голосов
/ 28 января 2019

Использование потоков сделало бы это намного более элегантным:

Assert.assertTrue
    (transportMilitaryPlanes.stream()
                            .anyMatch(p -> p.getMilitaryType() == MilitaryType.TRANSPORT));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...