【发布时间】:2016-01-03 00:21:15
【问题描述】:
我在测试 void 函数时遇到问题。
如果您查看下面的代码,那么当我希望对此进行测试时,我最终会得到一个 (Deck, void) 并且无法对其进行测试(请参阅 DeckTest)
编辑:如何测试是否已创建一副纸牌,即public void createDeck()
public class Deck {
public Deck() {
this.cards = new ArrayList<Card>();
}
...
public void createDeck() {
for (Suit suit : Suit.values()) {
for (Rank rank : Rank.values()) {
this.cards.add(new Card(rank, suit));
}
}
}
...
}
现在进行junit测试
public class DeckTest extends TestCase {
Deck deck = new Deck();
@Test
public void testCreateDeck() throws Exception {
assertEquals(deck, deck.createDeck()); <--- I have (Deck, void)
}
...
}
如何在 Junit 中使用我的“public void createDeck”来测试是否已创建卡组?
查看完整代码的链接
【问题讨论】:
-
代码,你面临的问题,以及解决它的尝试,必须在问题中。
-
试着用文字表达你想要用你的测试断言什么(什么条件、行为、合同)。
-
由于您的方法影响
cards变量而不返回任何内容,您应该使用cards进行断言,例如断言您希望它包含哪些特定卡片。 -
所以你想让我把
public void createDeck()改成public Card createDeck()?但我在这里不需要返回任何东西,我只希望创建一副牌