При выполнении автоматизированных тестов должна быть положительная ошибка - PullRequest
0 голосов
/ 27 декабря 2018

При запуске набора унаследованных автоматических тестов я получаю сообщение об ошибке:

java.lang.IllegalArgumentException: bound must be positive
at java.base/java.util.Random.nextInt(Random.java:388)
at LinkGeneratorWww.getRandomPage(LinkGeneratorWww.java:166)  

Кажется, что приведенный ниже код является проблемой, но я не могу понять, как ее решить.

public static String getRandomPage() {

    List<String> pages = getAllPagesInDatabase();

    //get random page from the list
    Random random = new Random();
    int randomNumber = random.nextInt(pages.size());

    return pages.get(randomNumber);
}

Я видел другие посты, у которых была такая же проблема, но я был бы признателен за любую помощь.Я попытался решить эту проблему, изменив pages.size() на pages.size()+1, но он начал возвращать другую ошибку (Index 0 out-of-bounds for length 0)

1 Ответ

0 голосов
/ 27 декабря 2018

Вы должны проверить размер списка перед возвратом одного из них.Так что, если список был пуст, вы можете вернуть null или бросить Exception:

public static String getRandomPage() {

    List<String> pages = getAllPagesInDatabase();
    if(pages == null || pages.size() == 0)
        return null;

    //get random page from the list
    Random random = new Random();
    int randomNumber = random.nextInt(pages.size());

    return pages.get(randomNumber);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...