簡體   English   中英

如何比較同一陣列中的兩個元素?

[英]How can I compare two elements in a same array?

我想用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");
        }
    }

}

測試pasch()

我會添加一個getter方法:

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]);
}

其他測試

至於其他單元測試,我認為你真的不需要測試這個類的其他部分。 但是如果你確定了,我會使用上面的getter方法為roll()編寫一個測試,然后檢查wuerfel數組中的兩個數字是否在16之間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM