【发布时间】:2017-04-05 11:11:12
【问题描述】:
所以基本上我正在尝试测试我的 5 张牌中是否有一对(两张牌具有相同的值 (1-9))并且我收到一个未知错误,这是我的代码
错误:
java.lang.AssertionError at org.junit.Assert.fail(Assert.java:86)...
代码:
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
@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));
【问题讨论】:
-
"...I'm getting an unknown error"-- 什么?如果您不发布错误消息的文本,我们将完全不知道您的错误——为什么不这样做? -
java.lang.AssertionError at org.junit.Assert.fail(Assert.java:86)... 我不知道错误是什么,因为我将它提交到提交服务器.
-
a) 我们是在玩扑克还是二十一点? b) 如果有 2 对怎么办? c) 一个愚蠢的编译器会说“并非所有路径都返回一个值”
-
不是测试不编译,只是测试的东西都没有通过测试。至少这是我可以从
org.junit.Assert.fail收集到的信息。你能发布失败的测试类吗? -
编译只是图片的一小部分。编译良好的代码仍然可能包含需要调试才能发现的严重逻辑错误,我建议您这样做——启动您的调试器并通过它运行您的代码以检查其运行时的状态。
标签: java arrays poker blackjack