8

このクラスをテストするテストクラスが欲しいのですが、書き方がわからず、オンラインで見ようとしましたが、まだ理解できませんでした.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");
    }
}
4

5 に答える 5

7

最初に、クラス用に作成する必要があるテスト ケースを決定する必要があります。テスト ケース リストが手元にあれば、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));
  }
} 
于 2013-03-08T19:50:34.843 に答える
2

Junit のようなテスト フレームワークを使用します。以下のサンプルを参照してください。

    public class ThingTester extends TestCase
{
    public ThingTester (String name) 
    {
        super (name);
    }

    public static void main(String[] args) 
    {
        TestRunner.runAndWait(new TestSuite(ThingTester.class));
    }

    public void testGetName() throws Exception 
    {
        String fileSpec = new String("c:xxxyyyzzz.txt");
        assertEquals("zzz.txt", getName(fileSpec));
    }
}
于 2013-03-08T19:54:01.083 に答える
1

クラスの機能をテストするメイン メソッドを作成する必要があります。

public static void main(String args[])
{
    //To do
}

メイン メソッドでは、たとえば Card オブジェクトを作成する必要があります (Card クラスがあると仮定します)。

Card card = new Card();

次に、たとえば Deck にカードを追加するために、Deck クラスのメソッドを呼び出すために使用する Deck オブジェクトを作成する必要もあります。

Deck deck = new Deck();

デッキ オブジェクトを使用して add メソッドを呼び出し、カードをデッキに追加します。

deck.add(card);

したがって、メイン メソッドは次のようになります。

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

また、Deck クラスでは、List<Card> deck = new ArrayList<Card>(); ではなくを使用することをお勧めしArrayList<Card> deck = new ArrayList<Card>();ます。

これが出発点になることを願っています。

于 2013-03-08T19:48:49.837 に答える
0

私はあなたが何を望んでいるのか理解できなかったと思いますが、ここで何らかの提案をします。

カードクラスはどこですか?

このメソッドを Deck クラスに追加し、コードをコンパイルして実行します。

public static void main(String[] args) {
    Deck deck = new Deck();
    // Call your methods here and do what do you want...
}
于 2013-03-08T19:54:03.797 に答える