1、在 testCreate 方法中添加代码来实例化一个 Pawn 对象。由于该类不存在,确保你会收到编译失败的提示。创建 Pawn 类并展示编译通过。
首先在测试类的 testCreate 方法中添加实例化 Pawn 对象的代码,如:
Pawn pawn = new Pawn();
运行测试会因 Pawn 类不存在而编译失败。
接着创建 Pawn 类,例如:
public class Pawn {}
再次运行测试,此时应能编译通过。
2、将实例化的Pawn对象赋值给一个局部变量。向该棋子询问其颜色。编写一个JUnit断言,以表明棋子的默认颜色由字符串“white”表示。展示测试失败的情况,然后向Pawn类添加代码使测试通过。
首先在 testCreate 方法里将实例化的 Pawn 对象赋给局部变量,接着调用获取颜色的方法得到颜色值,使用 JUnit 断言判断该值是否为 white ,由于此时 Pawn 类可能未实现相关逻辑,测试会失败。之后在 Pawn 类中添加逻辑,让默认颜色为 white ,再次运行测试即可通过。
3、在 testCreate 方法中,创建第二个兵(pawn)对象,将颜色“黑色”传递给其构造函数。断言这个第二个兵的颜色是“黑色”。展示测试失败的情况,然后修改代码使测试通过。注意:移除默认构造函数,要求创建 Pawn 对象的客户端传入颜色。
按照任务要求,在 testCreate 方法里创建第二个 Pawn 对象并传入颜色“黑色”,使用断言验证其颜色为“黑色”,若测试失败则添加相应代码到 Pawn 类使测试通过,同时移除默认构造函数,确保创建 Pawn 对象时必须传入颜色。
4、在TestPawn中添加一个测试,创建一个没有颜色的棋子。为什么这会产生编译错误?(提示:考虑默认构造函数。)通过添加一个默认构造白色棋子的第二个构造函数来修复编译错误。
下面是给定的【文本内容】:
产生编译错误是因为代码中移除了默认构造函数,要求创建Pawn对象的客户端必须传入颜色,所以创建没有颜色的棋子时找不到合适的构造函数。修复方法是在Pawn类中添加一个默认构造白色棋子的构造函数,示例代码如下:
public class Pawn {
private String color;
// 原构造函数
public Pawn(String color) {
this.color = color;
}
// 新增默认构造白色棋子的构造函数
public Pawn() {
this.color = "white";
}
public String getColor() {
return color;
}
}
5、没有棋盘,兵(Pawn)就没什么用。使用一个测试来定义一个棋盘(Board)类。断言棋盘开始时上面没有棋子。遵循测试驱动开发(TDD)流程:编写尽可能小的测试。用红色条(测试失败)或编译错误来证明测试失败。逐步添加少量代码以实现干净的编译或测试通过(绿色条)。
首先编写一个测试方法,在测试中创建 `Board` 类的实例,然后使用断言来验证棋盘开始时棋子数量为 0。
由于此时 `Board` 类可能未定义或没有相应的获取棋子数量的方法,会出现编译错误或测试失败。
接着逐步添加代码到 `Board` 类中,例如添加一个变量来记录棋子数量并初始化为 0,以及提供获取棋子数量的方法,直到编译通过且测试成功。
6、将你创建的四个测试类和普通类移动到一个独立的包中。将这个包命名为 chess。解决编译失败的问题,再次让测试通过。此外,使用 import 语句替换 List 和 ArrayList 的全限定类名。
-
创建名为
chess的包。若使用 IDE,可通过 IDE 功能创建;若手动操作,需在对应目录下创建名为chess的文件夹。 -
将四个测试类和普通类移动到
chess包中。在 IDE 里可直接拖动;手动操作则复制源文件到chess文件夹。 -
解决编译失败问题,检查代码中是否有因类移动导致的引用错误,确保包名和类路径正确。
-
使用
import语句替换List和ArrayList的全限定类名,在源文件开头添加类似如下代码:
java import java.util.List; import java.util.ArrayList; -
运行测试,确保测试通过,达到绿色条(测试成功)状态。
7、将 TestPawn 和 Pawn 类移到名为 pieces 的包中,并解决过程中发现的任何问题。
- 将
TestPawn和Pawn类移动到pieces包。 - 在移动过程中,若出现编译错误、引用错误等问题,需进行以下检查和修改:
- 检查类的导入语句。
- 检查类的访问权限。
- 根据需要对代码进行相应修改,以确保代码能够正常编译和运行。
8、确保除了兵(Pawn)之外,没有其他东西可以被添加到棋盘上。尝试将一个新的 Integer(7) 添加到兵的列表中,查看产生的编译错误。
尝试在代码中添加以下内容:
// 尝试将新的 Integer(7) 添加到兵的列表,触发编译错误
pawnList.add(new Integer(7));
此操作旨在通过类型不匹配触发编译错误,以确保棋盘只能添加兵( Pawn )对象,从而保证类型安全性。
9、创建一个能运行每个测试类的测试套件。
可以创建一个名为 AllTests 的类来构建测试套件。示例代码如下:
public class AllTests {
public static junit.framework.TestSuite suite() {
junit.framework.TestSuite suite = new junit.framework.TestSuit

最低0.47元/天 解锁文章
305

被折叠的 条评论
为什么被折叠?



