2016-11-21 7 views
-3

基本的に私は5枚のカードが1枚(2枚のカードが同じ値(1〜9)を持っているかどうかを調べるためにテストしようとしています。これは私のコードjavaブラックジャックペアハンド

エラーです:

java.lang.AssertionError at org.junit.Assert.fail(Assert.java:86)... 

コード:

@Test 
public void testExampleTest_SinglePairTest() { 
    Card[] testHand = new Card[5]; 
    testHand[0] = new Card(1,1); 
    testHand[1] = new Card(2,1); 
    testHand[2] = new Card(2,1); 
    testHand[3] = new Card(4,1); 
    testHand[4] = new Card(5,1); 
    assertTrue(HandEvaluatorBBXP.hasPair(testHand)); 
を失敗している

public static boolean hasPair(Card[] cards) { 
    Deck theDeck = new Deck(); 
    cards = theDeck.deal(5); 

    int k=0; 

    for (int atPos = 0; atPos<5; atPos++){ 
     for (int atPos2 = atPos+1; atPos2<5; atPos2++){ 

      if(cards[atPos].getValue() == cards[atPos2].getValue()){ 
       k++; 
      } 
     } 
    } 
    if (k==2){ 
     return true; 
    } 
    else { 
     return false; 
    } 

のJUnit

+0

'' ...不明なエラーが出ています '' - 何?エラーメッセージのテキストを投稿しないと、あなたのエラーは完全にわかりません。なぜそうしないのですか? –

+0

org.junit.Assert.fail(Assert.java:86)のjava.lang.AssertionError ... \t私はサブミット・サーバーにサブミットするため、エラーが何であるか分かりません。 – masonft

+0

a)ポーカーやブラックジャックをしていますか? b)2組ある場合はどうなりますか? c)ダムコンパイラが 'すべてのパスが値を返すわけではないと言うでしょう' – John3136

答えて

0

hasPairメソッドの引数としてCard[] cardsを渡すことに意味がないように見えるので、すぐに変数をdeck.deal()が返すものに設定するためです。したがって、入力値は決して使用されません。

これは、hasPairメソッドが実際にテストを評価するために使用しているテストデータであるため、テストが失敗する可能性があります。

関連する問題