我已经实现了一个纸牌游戏,需要测试洗牌方法。我正在使用 netbeans 7.2,现在遇到问题,因为在我调用 instance.shuffleDeck 方法后,deckBeforeShuffle 是空的,所以我无法将它与我的 deckAfterShuffle 数组进行比较以查看它是否被洗牌!这是我第一次使用 JUnit 并尝试了不同的方法来解决这个问题,但一切都是徒劳的。
@Test
public void testShuffleDeck() {
System.out.println("shuffleDeck");
CardDeck instance = new CardDeck(1);
ArrayList<Card> deckBeforeShuffle = instance.getDeck();
instance.shuffleDeck();
ArrayList<Card> deckAfterShuffle = instance.getDeck();
boolean isShuffled = false;
int position = 0;
System.out.println(deckBeforeShuffle.size());
while(position<deckBeforeShuffle.size() && !isShuffled){
if(deckBeforeShuffle.get(position).getSuitValue() != deckAfterShuffle.get(position).getSuitValue() && deckBeforeShuffle.get(position).getvalue() != deckAfterShuffle.get(position).getvalue()){
isShuffled = true;
}
position++;
}
assertEquals(true, isShuffled);
}
我的洗牌方法!
公共无效 shuffleDeck(){
ArrayList<Card> temp = new ArrayList();
Random rand = new Random();
int position;
while(deck.size() > 0){
position = rand.nextInt(deck.size());
temp.add(deck.remove(position));
}
deck = temp;
}
我很感激任何帮助!