Как я могу сравнить два элемента в одном массиве? - PullRequest
0 голосов
/ 22 июня 2019

Я хочу написать тестовый пример с Junit для моего класса ParOfDice. Но я не знаю, как я могу сравнить элементы одного массива. Не двух разных массивов.

public class Wuerfelpaar {     // ParOfDice//

    //Erstellungs des Arrays
    private int[] wuerfel = new int[2];

    //Konstruktur des Klasses
    public Wuerfelpaar() {
        this.roll();
        this.pasch();
    }


    public void roll() {

        // Liefert die Länge vor der for-Schleife. Dies wird schneller sein, als wir es nicht sind
        // Immer wieder durch den Bereich navigieren.
        int length = wuerfel.length;
        for (int i = 0; i < length; ++i) {
            wuerfel[i] = (int) ((Math.random() * 6) + 1);
            System.out.println(wuerfel[i]);


        }
    }
    //Falls die Elemente des Arrays (beide Wuerfel) gleich sind
    //Kriegen wir eine Meldung, dass das Pasch ist.
    //Mit diese Struktur, sind die Klassen wiederrufbar.

    public void pasch(){
        if (wuerfel[0] == wuerfel[1]){
            System.out.println("PASCH");
        }
    }

}

1 Ответ

0 голосов
/ 22 июня 2019

Тестирование pasch()

Я бы добавил метод получения:

public int[] getWuerfel() {
   return wuerfel;
}

и метод логического подтверждения:

public boolean istPaar() {
   if(wuerfel[0] == wuerfel[1]) {
      return true;
   }
   return false;
}

до Wuerfelpaar.Затем в своем тесте JUnit вы можете сделать что-то вроде следующего:

Wuerfelpaar wp = new Wuerfelpaar();
int[] wuerfel = wp.getWuerfel();
if(wp.istPaar()) {
   assertEqual(wuerfel[0], wuerfel[1]);
}
else {
   assertNotEqual(wuerfel[0], wuerfel[1]);
}

Другие тесты

Что касается других юнит-тестов, я не думаю, что вам действительно нужнопроверить другие части этого класса.Но если вы уверены, я бы написал тест для roll(), используя метод получения, описанный выше, а затем проверил бы, что оба числа в массиве wuerfel находятся между 1 и 6 .

...