2013-10-22 23 views
-4

我有这个类的测试用例,我必须填写所有的方法。我收到了一些最后只返回已经创建的东西。但我不知道如何去做其他的方法。有小费吗?我们正在制作一个Yahtzee游戏。不知道如何用测试用例编程这个类

这里是一流的,我必须在方法

import java.util.Vector; 
import model.Player; 

public class YahtzeeEngine { 
    public static final int MAX_ROLLS = 0; 
    private Vector<Player> myPlayers; 
    private Roller myRoller; 
    private Player myPlayerUp; 
    private int myNumberRollsUsed; 
    public Vector myPlayer; 

    public YahtzeeEngine(int numPlayers) { 
    } 

    public void startGame() { 
    } 

    public void selectPlayerUp(Player player) { 
    } 

    public void switchPlayerUp() { 
    } 

    public boolean incrementRollsUsed() { 
     return false; 
    } 

    public void resetNumberRollsUsed() { 
     myNumberRollsUsed = 0; 
    } 

    public Roller getRoller() { 
     return myRoller; 
    } 

    public Player getPlayerUp() { 
     return myPlayerUp; 
    } 

    public Vector<Player> getPlayers() { 
     return myPlayers; 
    } 

    public int getNumberRollsUsed() { 
     return myNumberRollsUsed; 
    } 

    public String toString() { 
     return null; 
    } 

} 

这里填写为它

package yahtzee.testing; 

import static org.junit.Assert.*; 
import yahtzee.model.Player; 
import yahtzee.model.Roller; 
import yahtzee.model.YahtzeeEngine; 

import org.junit.Assert; 
import org.junit.Test; 

/** 
* This class is built to test the methods within the YahtzeeEngine class. 
* Each test case should pass if the code is properly implemented. 
*/ 
public class TestYahtzeeEngine { 
    /** 
    * Tests that the Category keeps track of the proper 
    * amount of rolls that have been used. 
    */ 
    @Test 
    public void testIncrement() { 
     YahtzeeEngine ye = new YahtzeeEngine(2); 

     for (int i = 0; i < 3; i++) { 
      ye.incrementRollsUsed(); 
     } 

     assertTrue(ye.getNumberRollsUsed() == 3); 
    } 

    /** 
    * Tests if the number of rolls is reset to zero when resetRolls() has been called. 
    */ 
    @Test 
    public void testResetRolls() { 
     YahtzeeEngine ye = new YahtzeeEngine(1); 

     for (int i = 0; i < 3; i++) { 
      ye.incrementRollsUsed(); 
     } 

     ye.resetNumberRollsUsed(); 

     assertTrue(ye.getNumberRollsUsed() == 0); 
    } 

    /** 
    * Tests if the current player up will rotate properly 
    * when the switchPlayerUp() method is invoked. 
    */ 
    @Test 
    public void testPlayerUp() { 
     YahtzeeEngine ye = new YahtzeeEngine(2); 
     Player player1 = ye.getPlayers().get(0); 

     ye.selectPlayerUp(player1); 
     ye.switchPlayerUp(); 

     assertFalse(ye.getPlayerUp().equals(player1)); 
    } 

    /** 
    * Tests if the player vector is the correct length for min number of players. 
    */ 
    @Test 
    public void testMinPlayerVector() { 
     YahtzeeEngine ye = new YahtzeeEngine(1); 
     assertTrue(ye.getPlayers().size() == 1); 
    } 

    /** 
    * Tests if the player vector is the correct length for max number of players. 
    */ 
    @Test 
    public void testMaxPlayerVector() { 
     YahtzeeEngine ye = new YahtzeeEngine(6); 
     assertTrue(ye.getPlayers().size() == 6); 
    } 

    /** 
    * Test that bad number of players passed in defaults to 2 players. 
    */ 
    @Test 
    public void testTooFewPlayerVector1() { 
     YahtzeeEngine ye = new YahtzeeEngine(0); 
     assertTrue(ye.getPlayers().size() == 2); 
    } 

    @Test 
    public void testTooFewPlayerVector2() { 
     YahtzeeEngine ye = new YahtzeeEngine(7); 
     assertTrue(ye.getPlayers().size() == 2); 
    } 

    /** 
    * Tests that the game is properly instantiated after startGame() has been called. 
    */ 
    @Test 
    public void testStartOfGame() { 
     YahtzeeEngine ye = new YahtzeeEngine(2); 
     ye.startGame(); 

     assertTrue(ye.getNumberRollsUsed() == 0); 
     assertTrue(ye.getPlayerUp() != null); 
     assertTrue(ye.getPlayers().get(0) != null); 
     assertTrue(ye.getPlayers().get(1) != null); 
     assertTrue(ye.getRoller() != null); 
    } 

    /** 
    * Testing values from YahtzeeEngine on default construction. 
    */ 
    @Test 
    public void testYahtzeeEngineConstructor() { 
     YahtzeeEngine ye = new YahtzeeEngine(1); 

     assertTrue(ye.getNumberRollsUsed() == 0); 
     assertTrue(ye.getPlayerUp() == null); 
     assertTrue(ye.getRoller() == null); 
     assertTrue(ye.getPlayers().size() == 1); 
    } 
} 
+0

你有试过什么吗?你有什么具体的问题:) –

+0

你基本上要求我们提供所有要实现的功能的提示。在你的问题中更具体一些,你会增加获得有意义答案的机会! – Calpis

+0

那么我已经完成了toString()之上的5,他们只是返回一些东西。但是我不确定如何对这些方法进行编程,根据测试用例的具体情况不确定如何实现。例如,在公共布尔方法中,我怎么知道该怎么做? – user2909132

回答

0

的方法“的toString()”我会用返回完成的测试类值以格式化的方式。例如,如果你的班级将有浮游物X,Y,Z我会返回(“X =”+ X +“Y =”+ Y +“Z =”+ Z)

startGame它运行游戏循环主题:

public void startGame() { 
    Thread game = new Thread(this); 
    game.start(); 
} 

public void stopGame() { 
    System.exit(1); 
} 

public void run() { 
    while (run) { 
    // TODO your game 
    } 
    // terminate 
    stopGame(); 
} 

你必须实现Runnable这一点,因为否则你不能给“这”给Thread构造函数。 变量运行是一个布尔值,表示您的游戏仍在运行,所以如果您将其设置为false,您的游戏将停止。

相关问题