Next we can create a unit test for
writing to the PIA register. In this case we are making sure that only output bits are changed. |
|
package simulator.r3.unittest;
import unittest.framework.*;
import simulator.r3.*;
class TestWriteToPIA extends Test
{public void runTest()
{PIA.register = 0x00FF;
PIA.setInputs(0x0F0F);
PIA.write(0x3333);
should(PIA.register == 0x303F, "Write
never changes inputs");};}
|
We also need to put this test into
our test suite. |
|
package simulator.r3.unittest;
import unittest.framework.*;
public class SimulatorTests extends TestSuite
{public SimulatorTests()
{tests = new Test[2];
tests[0] = new TestReadFromPIA();
tests[1] = new TestWriteToPIA();};}
|
If we stub out our write method
we can compile and run our new test to be sure it fails. Now let's create the code for the write method. |
|
package simulator.r3;
public class PIA
{public static int register = 0;
public static int inputBits = 0;
public static int read()
{return register & inputBits;}
public static void write(int theNewOuputs)
{register = read() | (theNewOuputs
& ~inputBits);}
public static void setInputs(int
aBitMask)
{inputBits = aBitMask;};}
|
Run the test again. This time it
passes as expected. Things are going well. But we are not sure we like the way this code looks. Let's do some refactoring
now. |
|