import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; public class GameDieTest { // you can have data fields in a JUnit test class! private GameDie die; private GameDie decaDie; /** The '@Before' method is run before each '@Test' method */ @Before public void setUp() throws Exception { die = new GameDie(); decaDie = new GameDie(10); } @Test public void getNumSidesTest() { assertEquals("newly created default die has 6 sides", 6, die.getNumSides()); assertEquals("newly-created 10-sided die has 10 sides", 10, decaDie.getNumSides()); } @Test public void getCurrTopTest() { assertEquals("newly-created die should have top of 1", 1, die.getCurrTop()); assertEquals("newly-created 10-sided die should have top of 1", 1, decaDie.getCurrTop()); int valRolled = die.roll(); assertEquals("rolled die's top should change to value rolled", valRolled, die.getCurrTop()); } @Test public void rollTest() { int dieRoll; int decaRoll; for (int i=0; i<1000; i++) { dieRoll = die.roll(); decaRoll = decaDie.roll(); assertTrue("6-sided die can roll 1-6, and here it is " + dieRoll, (dieRoll >= 1) && (dieRoll <= 6)); assertTrue("10-sided die can roll 1-10, and here it is " + decaRoll, (decaRoll >= 1) && (decaRoll <= 10)); } } }