第二章的习题主要是建立棋盘(Board),并且在棋盘上添加卒(Pawn)。
1、创建测试类BoardTest,并测试格子是空的。
@Test
public void testAddPawn() {
Board board = new Board();
assertEquals(0, board.getPawnCount());
}
先解决语法错误,然后运行测试,并解决问题。
public class Board {
public int getPawnCount() {
return 0;
}
}
2、允许添加卒(Pawn)到棋盘(Board)上去,并且每次添加之后测试棋盘上的Pawn的数量。
先添加测试:
public void testAddPawn() {
Board board = new Board();
assertEquals(0, board.getPawnCount());
Pawn pawn = new Pawn();
board.addPawn(pawn);
assertEquals(1, board.getPawnCount());
assertTrue(board.getPawns().contains(pawn));
Pawn blackPawn = new Pawn(Pawn.COLOR_BLACK);
board.addPawn(blackPawn);
assertEquals(2, board.getPawnCount());
assertTrue(board.getPawns().contains(pawn));
assertTrue(board.getPawns().contains(blackPawn));
}
在Board类里面添加相应的方法:
private List<Pawn> pawns = new ArrayList<Pawn>();
public void addPawn(Pawn pawn) {
pawns.add(pawn);
}
public int getPawnCount() {
return pawns.size();
}
public List<Pawn> getPawns() {
return pawns;
}
运行测试,看见成功。
3、将4个类都移动到chess包里面去,并解决编译错误。再将TestPawn,Pawn移动到pieces中,解决出现的问题。
4、尝试添加其他类型到棋盘,将会发现出现语法错误。
5、给生产类添加Javadoc
这章的最终程序在附件里面。我的环境:windowsXP,eclipse3.5,jdk1.6,JUnit4.5