import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; /** * JUnit test class for (Week 14 LAB) version of GameDie * * @author Sharon Tuttle * @version 2015-12-02 */ public class GameDieTest { // data fields private GameDie die; private GameDie decaDie; /** * this @Before method will set up our two dice * before each test */ @Before public void setUp() throws Exception { die = new GameDie(6); decaDie = new GameDie(10); } /** * test method for getNumSides */ @Test public void testGetNumSides() { assertEquals("6-sided die should have 6 sides", 6, die.getNumSides()); assertEquals("10-sided die should have 10 sides", 10, decaDie.getNumSides()); } /** * test method for getNumRolls */ @Test public void testGetNumRolls() { assertEquals("brand new die has not yet been rolled", 0, die.getNumRolls()); // roll 6-sided die a few times die.roll(); die.roll(); die.roll(); assertEquals("thrice-rolled die has been rolled 3 times", 3, die.getNumRolls()); assertEquals("another not-yet-rolled-die should show that", 0, decaDie.getNumRolls()); decaDie.roll(); assertEquals("once-rolled die has been rolled 1 time", 1, decaDie.getNumRolls()); assertEquals("thrice-rolled die has been rolled 3 times", 3, die.getNumRolls()); } /** * test for method roll * (at least a partial test -- does NOT test * if it is even a little bit random...) */ @Test public void testRoll() { int testRollResult; for (int i=0; i<5000; i++) { testRollResult = die.roll(); assertTrue("6-sided die should roll [1, 6]", (testRollResult >= 1) && (testRollResult <= 6)); testRollResult = decaDie.roll(); assertTrue("10-sided die should roll [1, 10]", (testRollResult >= 1) && (testRollResult <= 10)); } } }