《Agile Java》是一本Java开发的入门书籍,同时讲述测试驱动开发(TDD)。作者将自己定位为一名软件工匠,分享自己的实际开发经验。从今天开始决定看完《Agile Java 中文版》,并敲完所有的例子代码,做完每章后面的习题,并在这里记录下我写的习题。
第一章的习题是创建国际象棋的卒Pawn类的。
1、创建PawnTest的空测试类,尝试运行JUnit,结果是不能运行。因为我使用的是JUnit4,在JUnit4中测试类和普通类是一样的,当你给他的某个方法加上注解"@Test",标识出这个是测试;而不是像以前版本那样必须是TestCase的子类,并且使用特殊命名方式来标识测试方法。
public class PawnTest {
}
2、创建测试方法TestCreate。现在可以运行JUnit。并且可以看到JUnit的绿条。
@Test
public void testCreate() {
}
3、在testCreate中添加一个Pawn对象的代码。
@Test
public void testCreate() {
Pawn pawn = new Pawn();
}
很明显这会导致编译错误,出现错误并不是问题,只要我们及时的解决掉他了。于是我们创建一个Pawn类。
public class Pawn {
}
现在编译错误没有了。并且运行JUnit可以看到绿色条条。一切正常,下一步。
4、增加一个断言,判断我们新增的pawn是否默认白色的(预设默认的卒是白色的)。
@Test
public void testCreate() {
Pawn pawn = new Pawn();
assertEquals("white", pawn.getColor());
}
并在Pawn中创建方法getColor,保证能够正常编译:
public String getColor() {
return null;
}
运行JUnit,红条!!Failures:1.JUnit告诉我们测试有一个失败本来想应该是“white”,但是是“null”,我们要正视错误,用最简单的方法解决它。于是我们在getColor中返回“white”。
public String getColor() {
return "white";
}
运行JUnit,绿条重现。正常下一步。
5、在testCase中添加一个黑色的卒:
Pawn blackPawn = new Pawn("black");
assertEquals("black", blackPawn.getColor());
为了解决编译错误,在Pawn中添加两个构造函数:
public Pawn() {
}
public Pawn(String color) {
}
编译问题解决了,运行JUnit。红条!!Failures:1,解决之。因为我的getColor是直接返回的“white”,必须修改让其返回正确的颜色。修改之后的Pawn类如下:
private String color;
public Pawn() {
this.color = "white";
}
public Pawn(String color) {
this.color = color;
}
public String getColor() {
return this.color;
}
运行JUnit,见到绿条,下一步。
6、重构,将程序中的字符串定义为常量。在PawnTest里面添加:
final String white = "white";
final String black = "black";
在Pawn里面添加:
static final String defaultColor = "white";
并将程序里面直接手写的字符串修改为这几个常量。
这章的最终程序在附件里面。我的环境:windows,eclipse3.5,jdk1.6,JUnit4.5
分享到:
相关推荐
【标题】"Agile Java习题2--Java基础"涵盖了Java编程语言的基础概念和实践,是学习者在Java开发旅程中的重要一步。Agile Java是一种敏捷开发方法论下的编程实践,强调快速迭代和灵活应对需求变化。在这个阶段,学习...
本话题将深入探讨Agile Java中的类方法和类变量,这些是面向对象编程的基础概念,对于理解和编写高质量的Java代码至关重要。 类方法和类变量是Java类的核心组成部分。在Java中,类是创建对象的蓝图,它定义了对象的...
Presents an expert overview of TDD and agile programming techniques from the Java developer's perspective Brings together practical best practices for Java, TDD, and OO design Walks through setting ...
【描述】"agile Java课后习题代码"暗示了这是一个教学情境,可能是学生在学习完敏捷开发与Java编程相关课程后,完成的练习项目或代码示例。这些代码可能包含了对敏捷开发原则的实践,例如短迭代周期、持续集成、用户...
本文档标题《Agile-Data-Warehouse-Design-From-Business-Models-to-BI-Models.pdf》直译为《敏捷数据仓库设计:从业务模型到BI模型》,表明这是一份关于数据仓库设计的资料,着重讲解如何从理解企业业务模型出发,...
redmine_agile-1_6_8-light.zip,redmine agile插件,可以增加redmine功能。 redmine_agile-1_6_8-light.zip,redmine agile插件,可以增加redmine功能。 redmine_agile-1_6_8-light.zip,redmine agile插件,可以...
《Agile Java 高清中文版》是一本深入讲解敏捷开发和Java编程的书籍,旨在帮助读者理解并掌握敏捷开发理念以及如何在Java项目中应用这些原则。这本书以高清中文的形式呈现,使得学习过程更为直观易懂,尤其适合中文...
《Agile Java1-4》是一系列关于敏捷开发与Java编程的高质量教程,旨在帮助开发者深入理解敏捷开发理念以及在Java环境下如何实现敏捷实践。在这个高清版本中,内容的清晰度得到了极大提升,使得读者在学习过程中能更...
"Agile Framework Common Util"是一个专门为Java开发者设计的工具类库,旨在提供一系列实用的工具方法,提高开发效率。这个库的核心功能之一是`ObjectUtil`类,它具有强大的对象深度转换能力,通过`ObjectUtil.to`...
1. **敏捷业务流程管理(Agile BPM)**:这是一种灵活、响应变化的业务流程管理方法,强调快速迭代、用户参与和持续改进。它结合了敏捷软件开发的原则,如迭代开发、增量交付和持续集成,以适应不断变化的业务需求。...
书中的代码示例涵盖了Java开发的重要方面,结合了Agile开发理念、Spring框架、Hibernate持久化库以及Eclipse集成开发环境的实用技巧。 Agile开发是一种以人为核心、迭代、逐步交付的软件开发方法论,强调快速响应...
1. **Java编程基础**:书中首先介绍了Java语言的基本语法,包括数据类型、变量、运算符、流程控制(如if-else,switch,循环等)、函数以及类和对象的概念。这些基础知识是理解和编写Java程序的基础。 2. **面向...
agile java 每一章 课程 的 源码;
【标题】"Agile Java Example Code" 涵盖了敏捷开发方法在Java编程中的实践应用,这是一系列示例代码,旨在展示如何在实际项目中采用敏捷原则和技巧。敏捷开发是一种以人为本、迭代和增量的软件开发方法论,强调快速...
《Agile Java》是一本专为初学者设计的Java编程教程,中文版的推出使得国内的编程爱好者能够更方便地学习这一全球广泛使用的编程语言。这本书深入浅出地讲解了Java语言的基础知识,旨在帮助读者快速掌握编程技能,并...
《敏捷Java:以测试驱动开发构建代码》是一本专注于软件开发方法论和技术实践的书籍,主要探讨了如何在Java环境中采用敏捷开发理念,尤其是通过测试驱动开发(TDD)来提高代码质量。这本书的核心在于教导开发者如何...
《Agile Java》是一本专为Java开发者设计的书籍,主要关注的是敏捷开发方法和测试驱动开发(TDD)在Java编程中的应用。这本书的核心理念是通过TDD来提高代码质量,推动敏捷开发流程,帮助开发者编写更加灵活、可维护且...