如何编写测试类来测试我的代码?

use*_*871 5 java arraylist bluej

我想要一个测试类来测试这个类,但我不知道如何编写它,我试图在网上看到但我仍然无法解决它.我在BlueJ上编写代码,我正在尝试创建设置游戏.

import java.util.*;

public class Deck
{
    ArrayList<Card> deck;
    public Deck ()
    {
         deck = new ArrayList<Card>();
    }

     public Deck (int capacity)
    {
        deck = new ArrayList<Card>(capacity);
    }

    public int getNumCards ()
    {
        return deck.size();
    }

    public boolean isEmpty () 
    {
        return deck.isEmpty();
    }

    public void add (Card card) 
    {
        deck.add(0,card);
    }

    public Card takeTop() 
    {
        return deck.remove(0);
    }

    public void shuffle ()
    {
        Collections.shuffle(deck);
    }

    public void sort ()
    {
        Collections.sort(deck);
    }

    public String toString ()
    { 
         return (deck.toString()+ "\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

Avi*_*ngh 6

首先你需要决定你需要为你的类编写哪些测试用例,一旦你有了测试用例列表,你就可以使用像 Junit 这样的库来创建测试用例。

这是一些 Junit 方法的示例

import static org.junit.Assert.assertEquals;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class MyClassTest {

  MyClass tester;

  @BeforeClass
  public static void testSetup() {
    tester = new MyClass();
  }

  @AfterClass
  public static void testCleanup() {
    // Do your cleanup here like close URL connection , releasing resources etc
  }

  @Test(expected = IllegalArgumentException.class)
  public void testExceptionIsThrown() {        
    tester.divide(1000, 0);
  }

  @Test
  public void testMultiply() {
    assertEquals("Result", 50, tester.multiply(10, 5));
  }
} 
Run Code Online (Sandbox Code Playgroud)


Kak*_*kia 1

您需要创建主要方法来测试类的功能。

public static void main(String args[])
{
    //To do
}
Run Code Online (Sandbox Code Playgroud)

例如,在您的 main 方法中,您需要构造一个 Card 对象(假设您有 Card 类)。

Card card = new Card();
Run Code Online (Sandbox Code Playgroud)

然后,您还需要构造一个 Deck 对象,您可以使用该对象调用 Deck 类的方法,例如将卡片添加到 Deck 中

Deck deck = new Deck();
Run Code Online (Sandbox Code Playgroud)

使用deck对象调用add方法将卡片添加到Deck中

deck.add(card);
Run Code Online (Sandbox Code Playgroud)

所以现在你的 main 方法应该看起来像这样:

public static void main(String args[])
{
   Card card = new Card();
   Deck deck = new Deck();
   deck.add(card);
}
Run Code Online (Sandbox Code Playgroud)

同样在您的 Deck 类中,我建议使用List<Card> deck = new ArrayList<Card>(); 而不是ArrayList<Card> deck = new ArrayList<Card>();.

希望这能为您提供一个起点。