`
lvwenwen
  • 浏览: 955607 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

Junit源码分析设计模式(圣思园)

阅读更多

1.junit的设计思想

   1.从零开始来应用设计模式,然后一个接一个,直至你获得最终适合的系统架构

 

1.junit用到的设计模式

  1.模板方法模式

   1.父类角色:提供模板

   2.子类角色:为模板提供实现

   一.JUnit在TestCase类中应用了模板方法模式:

   public void runBare() throws Throwable {

setUp();

try {

runTest();

}

finally {

tearDown();

}

}

  2.适配器模式(Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作)

  1. 适配器模式(Adapter Pattern)主要分为三种:

  1) 基于类的继承方式

  2) 基于对象组合方式

  3) 缺省的适配器模式(AWT,Swing事件模型所采用的模式)(父类空实现,子类来实现)

 

   二. JUnit在TestCase类中应用了适配器(Adapter)模式:

     在runBare方法中,通过runTest方法将我们自己编写的testXXX方法进行了适配,

     public void runBare() throws Throwable {

setUp();

try {

runTest();

}

finally {

tearDown();

}

}

     使得JUnit可以执行我们自己编写的Test Case,runTest方法的实现如下:

/**

* Override to run the test and assert its state.

* @exception Throwable if any exception is thrown

*/

protected void runTest() throws Throwable {

assertNotNull(fName);

Method runMethod= null;

try {

// use getMethod to get all public inherited

// methods. getDeclaredMethods returns all

// methods of this class but excludes the

// inherited ones.

runMethod= getClass().getMethod(fName, null);

} catch (NoSuchMethodException e) {

fail("Method \""+fName+"\" not found");

}

if (!Modifier.isPublic(runMethod.getModifiers())) {

fail("Method \""+fName+"\" should be public");

}

 

try {

runMethod.invoke(this, new Class[0]);

}

catch (InvocationTargetException e) {

e.fillInStackTrace();

throw e.getTargetException();

}

catch (IllegalAccessException e) {

e.fillInStackTrace();

throw e;

}

}

  在runTest方法中,首先获得我们自己编写的testXXX方法所对应的Method对象(不带参数),

  然后检查该Method对象所对应的方法是否是public的,如果是则调用Method对象的invoke方法来去执行

  我们自己编写的testXXX方法。

 

  三。命令模式

    1. 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队,

       或记录请求日志,以及支持可撤销的操作

 

  四.组合模式 (TestCase,TestSuit)

   1.组合模式又可以叫部分-整体模式

 

  五.如何看源代码

     1.调试加不断跟进,断点,debuge进去看源代码,2.看重点内容的源代码

分享到:
评论

相关推荐

    Junit源码分析(圣思园)

    **Junit源码分析(圣思园)** Junit是Java编程语言中最广泛使用的单元测试框架,它使得开发者能够方便地编写和运行可重复的、可靠的测试用例。本篇文章将深入探讨Junit的源码,揭示其内部工作原理,帮助我们更好地...

    junit源码以及牵涉到的设计模式

    ### JUnit源码及其涉及的设计模式 #### 一、引言 JUnit作为一款广泛应用于Java项目的单元测试框架,其设计理念和实现方式对于软件开发者来说具有很高的学习价值。本文将深入探讨JUnit源码,并重点关注其中使用的...

    北京圣思园 junit全套笔记及源码

    在“北京圣思园 junit 全套笔记及源码”中,你将深入学习 JUnit 的各种功能和最佳实践。以下是一些关键知识点: 1. **安装与配置**:首先,你需要了解如何在你的开发环境中安装 JUnit,通常是通过 Maven 或 Gradle ...

    JUnit的框架设计及其使用的设计模式

    这个框架的设计基于一系列高效的设计模式,这些模式不仅提升了JUnit的灵活性,还使得开发者能够方便地扩展和定制测试功能。 首先,JUnit的核心设计理念是“简单易用”。它遵循了“最小化API”原则,提供了一套简洁...

    Junit设计模式分析

    在Junit中,设计模式的应用极大地增强了其灵活性和可扩展性。下面我们将深入探讨Junit中涉及到的设计模式及其作用。 1. 工厂模式:JUnit中的`TestSuite`类就是一个典型的工厂模式应用,它根据传入的类或测试方法...

    Junit设计模式分析(带源码)

    本资源"Junit设计模式分析(带源码)"旨在深入探讨JUnit在设计上的模式和最佳实践,通过源码分析帮助开发者更好地理解和应用这个工具。 1. 单元测试基础: 单元测试是对软件中的最小可测试单元进行检查,如函数、...

    Junit设计模式分析.docx

    本文将对 JUnit 设计模式进行深入分析,探讨 JUnit 中的设计模式应用,了解 JUnit 是如何使用设计模式来实现测试框架的。 一、JUnit 概述 JUnit 是一个优秀的 Java 单元测试框架,由 Erich Gamma 和 Kent Beck ...

    Junit设计模式分析.pdf

    尽管标题提及了“Junit设计模式分析”,但实际内容并未涉及Junit的设计模式分析,而是侧重于JBoss 5的新特性介绍。因此,下面将围绕JBoss 5新特性进行深入解析。 ### JBoss 5 微容器(Microcontainer)介绍 #### ...

    一个参考Junit的设计模式ppt

    JUnit的架构设计遵循了简单而高效的原则,同时采用了多种设计模式,如工厂模式用于创建测试实例,单例模式用于全局唯一的测试运行器,观察者模式用于事件通知等。这些模式的运用使得JUnit具有高度的可扩展性和可维护...

    JUNIT设计模式分析PPT

    ### JUNIT设计模式分析 #### 1. JUnit概述 ##### 1.1 JUnit简介 JUnit是一个开源的Java测试框架,属于XUnit家族的一员。它由Erich Gamma和Kent Beck共同开发完成,旨在简化Java应用程序的单元测试过程。JUnit在...

    JUnit设计模式分析及简化的JUnit代码

    本文将深入探讨JUnit中的设计模式,以及如何通过理解这些模式来简化JUnit的使用。 首先,JUnit的核心设计理念之一是“依赖注入”,这是设计模式中的一个关键概念。依赖注入允许测试类动态地获取它们所依赖的对象,...

    Junit设计模式分析.rar

    《JUnit设计模式分析》 JUnit是Java编程语言中广泛使用的单元测试框架,它极大地简化了对代码进行测试的过程。设计模式则是软件工程中的一种最佳实践,通过总结和抽象出常见问题的解决方案,使得开发者能够更好地...

    Junit设计模式应用

    《Junit设计模式应用》是基于作者业余时间的翻译成果,旨在通过设计模式的角度深入剖析JUnit的内在原理,以此促进读者对单元测试框架理解和运用能力的提升。设计模式是软件工程中的宝贵经验总结,它为解决常见问题...

Global site tag (gtag.js) - Google Analytics