[英]How do I use JUnit to test the getter and setter methods of an ArrayList?
我需要为Card游戏编写测试用例。 我坚持使用arrayList的getter和setter方法。 arrayList保存玩家手牌,并获取另一个类的对象。
Card Class // Describes the cards
Card(int suit, int rank, boolean ID, int points):
// The cards are fractions instead of traditional cards
// Card(0, 0, true(isDouble), 0(extra point)) card looks like 0/0
Deck Class // creates cards and hands
static ArrayList<Card> playerFour = new ArrayList<Card>();
public static ArrayList<Card> getPlayerFour() {
return playerFour;
}
public static void setPlayerFour(ArrayList<Card> playerFour) {
Deck.playerFour = playerFour;
}
@Test
void testGetPlayerFour() {
// Can't figure out
}
@Test
void testSetPlayerFour(){
// Can't figure out
}
// Some of what I tried
@Test
void testGetPlayerFour() {
Deck deck = new Deck();
ArrayList<Card> playerFour = new ArrayList<Card>();
playerFour.add(new Card(0, 0, false, 0));
assertEquals(00, deck.getPlayerFour());
}
@Test
void testSetPlayerFour() {
Deck deck = new Deck();
deck.setPlayerFour(new Card(0, 0, false, 0);
assertEquals(00, deck.getPlayerFour());
}
我不确定我是否需要@Before
和@After
在测试中首先启动ArrayList
。 我能找到的所有阅读和示例都使用ArrayList<String or Integer>
。
如果你测试setter和getter,我会很快谈谈你。 我完全相信这取决于你,如果setter和getter中的功能对你的产品很重要,那么肯定是为它们编写单元测试。
因此,在决定要测试这些方法之后,您可以尝试以下方法:
@Test
void testSetGetPlayerFour() {
// Arrange
Deck deck = new Deck();
ArrayList<Card> myCards = new ArrayList<Card>();
Card myCard = new Card(); // You will need to create a valid card here
myCards.add(myCard);
// Act
deck.setPlayerFour(myCards);
// Assert
assertEquals(myCards, deck.getPlayerFour());
}
我已将测试集合并将方法合并到一个测试中。 这可以被认为是错误的,因为单元测试应该测试代码的最小部分。 但是,在这种情况下,它使测试代码更清晰。
在Diffblue(我工作的公司),我们免费试用了我们的单元测试生成工具 。 使用此功能,您可以将一些代码放入(最多200行)并查看生成的单元测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.