`
southwolf
  • 浏览: 4286 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Agile Java 笔记 - Lesson02

阅读更多

Agile Java 书中的例子用JUnit 3 写成, 学习过程中顺便应用一下JUnit 4。

 

Lesson 2 - Suites 一节

import junit.framework.TestSuite;

public class AllTests {
   public static TestSuite suite() {
      junit.framework.TestSuite suite =
         new junit.framework.TestSuite();
      suite.addTestSuite(StudentTest.class);
      suite.addTestSuite(CourseSessionTest.class);
      return suite;
   }
}
 

由于JUnit4 添加了Annotation支持 简化了TestSuite的写法 。 只需如此:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({StudentTest.class, CourseSessionTest.class})
public class AllTests { }
 

The setUp Method 一节 

TestCase中测试方法公用的初始化代码放在setUp()中

public class CourseSessionTest extends TestCase {
   private CourseSession session;
   @Override
   public void setUp() {
      session = new CourseSession("ENGL", "101");
   }
   //...
}

 对JUnit4 初始化方法的名字可以任选,只要使用@Before指明”这是执行test之前需要运行的代码“即可

public class CourseSessionTest {
   private CourseSession session;
   @Before
   public void anyMethod() {
      session = new CourseSession("ENGL", "101");
   }
   //...
}

  Caution!session本来是在测试方法内初始化的,抽出来以后记得把那些方法里的CourseSession  session改掉…

 


More Refactoring 一节

测试代码中引入的List 就是对实现代码的一种设计, 最终还要引入到生产代码中去。

保持良好的封装,与客户代码减少耦合——测试代码中并不需要得到allStudents的List,只是需要list中的各个元素。此时,应该把List的实现代码移入CourseSession类中,只暴露get方法,防止客户代码对这个List进行修改。

 

 

 

分享到:
评论

相关推荐

    Agile Java1-4

    《Agile Java1-4》是一系列关于敏捷开发与Java编程的高质量教程,旨在帮助开发者深入理解敏捷开发理念以及在Java环境下如何实现敏捷实践。在这个高清版本中,内容的清晰度得到了极大提升,使得读者在学习过程中能更...

    Agile-Data-Warehouse-Design-From-Business-Models-to-BI-Models.pdf

    本文档标题《Agile-Data-Warehouse-Design-From-Business-Models-to-BI-Models.pdf》直译为《敏捷数据仓库设计:从业务模型到BI模型》,表明这是一份关于数据仓库设计的资料,着重讲解如何从理解企业业务模型出发,...

    agile-framework-common-util-master_java_

    "Agile Framework Common Util"是一个专门为Java开发者设计的工具类库,旨在提供一系列实用的工具方法,提高开发效率。这个库的核心功能之一是`ObjectUtil`类,它具有强大的对象深度转换能力,通过`ObjectUtil.to`...

    agile-share-xml.jar.zip

    综上所述,agile-share-xml.jar.zip是针对敏捷开发场景设计的一个包含XML处理功能的Java库。理解和掌握相关敏捷开发理念、XML技术以及Java库的使用方法,对于有效利用这个组件至关重要。在实际项目中,合理地集成和...

    agile-share-prof.jar.zip

    总的来说,"agile-share-prof.jar.zip"是一个反映敏捷开发理念和Java技术的实例,它体现了模块化、可重用和高效协作的软件开发原则。理解和掌握这类库的使用,对于提升开发团队的工作效率和产品质量具有重要意义。在...

    agile-bpm-basic-master.zip

    在agile-bpm-basic-master中,可能包含BPMN流程图和对应的Java实现。 6. **版本控制**:"master"分支是Git的默认主分支,表示项目的主要稳定版本。文件名中的"master"暗示项目使用Git进行版本控制,便于团队协作和...

    Python库 | agile-analytics-0.5.tar.gz

    《Python库:agile-analytics-0.5的深度解析》 在信息技术日新月异的今天,Python作为一门强大且易学的编程语言,已经广泛应用于数据处理、数据分析以及后端开发等多个领域。本文将围绕名为"agile-analytics-0.5"的...

    Agile Java Crafting Code with Test-Driven Development

    Agile Java Crafting Code with Test-Driven Development英文版,包含pdf和chm格式,pdf格式的目录缩进和超连接有问题,所以附上了改造过的chm文件,以便有心人可以修改目录。

    redmine-agile-1-6-8-light.zip

    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插件,可以...

    ebook-agile-software-testing.pdf

    《ebook-agile-software-testing.pdf》是一本关于敏捷软件测试的电子书合集,涵盖测试方法、工具以及测试文化的方方面面。本书由测试人员编写,专为测试人员提供信息和见解,内容涵盖了移动应用测试、行为驱动开发...

    华为Agile Controller-Campus V100R003C30 产品文档

    Agile Controller-Campus建立在华为对企业客户需求和痛点的深刻理解基础之上,以“敏捷”为理念,以移动办公、访客多样化接入、开放融合和高可靠性为基本要素,通过全网业务权限统一控制、安全资源统一调度,实现...

    Agile Java习题2--Java基础

    【标题】"Agile Java习题2--Java基础"涵盖了Java编程语言的基础概念和实践,是学习者在Java开发旅程中的重要一步。Agile Java是一种敏捷开发方法论下的编程实践,强调快速迭代和灵活应对需求变化。在这个阶段,学习...

    Agile Java Development with Spring, Hibernate and Eclipse-code

    书中的代码示例涵盖了Java开发的重要方面,结合了Agile开发理念、Spring框架、Hibernate持久化库以及Eclipse集成开发环境的实用技巧。 Agile开发是一种以人为核心、迭代、逐步交付的软件开发方法论,强调快速响应...

    Agile Java 习题1--起步

    "Agile Java 习题1--起步"这个标题暗示我们将会探讨如何使用Java语言来实践敏捷开发,并且可能涉及一些初级的编程练习。在这个过程中,我们将深入理解Java编程的基础,以及如何将敏捷原则应用于实际的项目开发。 ...

    agile-eci-base.jar.zip

    标签:agile-eci-base.jar.zip,agile,eci,base,jar.zip包下载,依赖包

    Lean-Agile Acceptance TDD - Better Software Through Collaboration

    “Lean-Agile Acceptance Test-Driven Development tells a tale about three fictive project stakeholders as they use agile techniques to plan and execute their project.

    Agile Controller-Campus V100R003C30 产品文档.chm

    Agile Controller-Campus建立在华为对企业客户需求和痛点的深刻理解基础之上,以“敏捷”为理念,以移动办公、访客多样化接入、开放融合和高可靠性为基本要素,通过全网业务权限统一控制、安全资源统一调度,实现...

    agile-swing-base.jar.zip

    标签:agile-swing-base.jar.zip,agile,swing,base,jar.zip包下载,依赖包

    Agile Data Science - 快速指南.md

    Agile Data Science - 快速指南

Global site tag (gtag.js) - Google Analytics