Assert 2 строки в альфа-порядке - PullRequest
0 голосов
/ 03 мая 2018

Я сейчас пишу. тест для сравнения записей таблицы лидеров в таблице ставок. Сначала я должен сравнить результаты выбора или игрока (который работает), а затем мне нужно сравнить очки каждого игрока (который работает), но если оба эти атрибута одинаковы Я должен утверждать, что игрок выше на столе выше в алфавитном порядке. Я создал переменные username_player и previous_user для этого, но не могу понять, как это сделать, я пытаюсь поместить его в секцию else if (что я считаю правильным). Похоже, что для этого нет опции assert?

public void test_player_leaderboard_entry() {



    int size = playerRows.size();
    Integer previous_total = 0;
    Integer previous_points = 0;
    String previous_user = null;


    for (int i = 0; i < size; i++) {

        //Position
        String position_first_player = Drivers.getDriver().findElement(By.cssSelector("[data-qa-position-value='" + i + "']")).getText();
        //Points
        String points_player = Drivers.getDriver().findElement(By.cssSelector("[data-qa-points-value='" + i + "']")).getText();
        //Username
        String username_player = Drivers.getDriver().findElement(By.cssSelector("[data-qa-player-value='" + i + "']")).getText();
        //Row Number
        Integer row = i + 1;
        Integer point_player = Integer.parseInt(points_player);
        Integer total_of_won_and_looking_good = 0;



        //PICKS
        for (int pick_number = 1; pick_number < 5; pick_number++) {
            String pick_status = Drivers.getDriver().findElement(By.xpath("//*[@id='root']/div/main/section[2]/section/div/ol/a[" + row + "]/li/div[3]/div[" + pick_number + "]/div")).getAttribute("data-qa-pick-state");
            //System.out.println(pick_status);
            if (Integer.parseInt(pick_status) == 2 || Integer.parseInt(pick_status) == 1) {
                total_of_won_and_looking_good = total_of_won_and_looking_good + 1;
            }




        } if(previous_total.equals(total_of_won_and_looking_good)) {

            Assert.assertTrue(previous_points > point_player);
            System.out.println("Picks are the same, points are higher ");

        } else if (previous_total.equals(total_of_won_and_looking_good)&& previous_points.equals(point_player)) {

            Assert.assertTrue(previous_user.compareTo(username_player) < 0);



        }
        previous_total = total_of_won_and_looking_good;
        previous_points = point_player;

        previous_user = username_player;


        System.out.println("On row number " + row + " we find " + username_player + " in position " + position_first_player + " with " + total_of_won_and_looking_good + " correct picks and " + points_player + " points!");
    }
}

}

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Вы можете использовать метод CompareTo.

Попробуйте использовать утверждение для previous_user.compareTo(username_player) <0

0 голосов
/ 03 мая 2018

Вы можете использовать метод CompareTo для строк, который сравнивает их лексикографически. Так что вы можете сделать что-то вроде

Assert.assertTrue(previous_user.compareTo(username_player) < 0)

Edit: Может быть, вы можете попробовать это так, но я не совсем уверен, что это то, что вы хотите:

        if(previous_total.equals(total_of_won_and_looking_good)) {

            Assert.assertTrue(previous_points > point_player);
            System.out.println("Picks are the same, points are higher ");

        } else if (previous_points.equals(point_player)) {

            Assert.assertTrue(previous_user.compareTo(username_player) < 0);

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