运行自动化测试时,绑定必须是肯定错误

时间:2018-12-26 23:00:57

标签: java automation

在运行一系列继承的自动化测试时,我收到错误消息:

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 :(得分:0)

您应在返回列表之一之前检查列表的大小。因此,如果列表为空,则可以返回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);
}