当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪JUnit单元测试(二)--JUnit基础      JUnit单元测试(二)--JUnit基础  1、基础介绍 1.JUnit是一种测试代码的框架,测试的目的是:保证代码没错,而不是保证代码正确。 2.测试类一般不要和目标类放在一起,但编译成的class.........
    ▪JUnit单元测试(一)--JUnit简介      JUnit单元测试(一)--JUnit简介 1、JUnit简介 JUnit是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。它是用于单元测试框架体系xUnit的一个实例(用于java语言)。主要用于白盒.........
    ▪SSH 获取或添加request,session,application属性      //获取Session ActionContext.getContext().getSession.put("user",user); //获取Application ActionContext.getContext().getApplication("user",user); //获取Session    作者:zhuangjixiang 发表于2013-4-6 22:45:3.........

[1]JUnit单元测试(二)--JUnit基础
    来源: 互联网  发布时间: 2013-10-30

JUnit单元测试(二)--JUnit基础 

1、基础介绍

1.JUnit是一种测试代码的框架,测试的目的是:保证代码没错,而不是保证代码正确。

2.测试类一般不要和目标类放在一起,但编译成的class文件是放在一起的,这样可以保证产品代码与测试代码分离,互不影响。

3.单元测试主要是来测试程序的结果和自己期望的值是否相等。

  

2、JUnit测试框架目前大体分为两种(JUnit 3.8 和 JUnit 4.x)

 2.1、JUnit 3.8

涉及到的包一般是 import junit.framework.*

在 JUnit 3.8 中,测试类要继承TestCast类,而TestCast类又继承于Assert类,测试方法需满足如下原则:

1)修饰符设为 public

2)返回类型 void

3)没有方法参数

4)方法名称必须以test开头

5)测试类都继承于TestCase类

另外,使用过程中,测试类不能依赖于测试方法的执行顺序

在新建的测试类中,有两个方法需要强调一下:

setUp方法和testDown方法:都是TestCase类的方法

1)setUp方法是在执行每个测试方法之前执行的,可以做一些初始化的工作,例如类实例声明。

2)testDown方法是在执行每个测试方法之后执行的,例如在此销毁对象。

 2.2、JUnit 4

涉及到的包是 import org.junit.*

在junit 4 当中测试类无需继承于 TestCase类,测试方法的名字也无需以test开头,主要以注解的方式来定义,只要在测试方法加上@Test就可以进行测试,但有些原则还是会以junit3 的风格来设计,比如测试方法以test开头,习惯问题吧,

•@Test :定义一个测试方法的标志
•@Test(timeout=1000) :设置超时时间,如果测试时间超过了你定义的timeout,测试失败
•@Test(expected) : 申明出会发生的异常,比如 @Test(expected = Exception.class)
•@Before : 跟junit 3.8 上的setUp() 方法同样的效果,方法名最好和setUp()一样,但不强求,在每一个测试方法之前被执行
•@After : 跟junit 3.8 上的tearDown() 方法同样的效果,方法名最好和tearDown()一样,但不强求,在每一个测试方法之后被执行
•@BeforeClass : 被该注解申明的方法,功能是:在所有的测试方法之前执行,只执行一次
•@AfterClass : 被该注解申明的方法,功能是:在所有的测试方法之后执行,只执行一次
•@Ignore :让 测试方法 或 测试类 不被执行,让其失去测试的功能
  

作者:xifeijian 发表于2013-4-5 21:33:10 原文链接
阅读:70 评论:0 查看评论

    
[2]JUnit单元测试(一)--JUnit简介
    来源: 互联网  发布时间: 2013-10-30

JUnit单元测试(一)--JUnit简介

1、JUnit简介

JUnit是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。它是用于单元测试框架体系xUnit的一个实例(用于java语言)。主要用于白盒测试,回归测试。

1.1、JUnit的好处和JUnit测试编写原则

1.1.1 使用JUnit的好处:

可以使测试代码与产品代码分开。

针对某一个类的测试代码通过较少的改动便可以应用于另一个类的测试。

易于集成到测试人员的构建过程中,JUnit和Ant的结合可以实施增量开发。

JUnit是公开源代码的,可以进行二次开发。

可以方便地对JUnit进行扩展。

1.1.2 JUnit测试编写原则:

简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写。

使测试单元保持持久性。

可以利用既有的测试来编写相关的测试。

1.2、JUnit的特征

1.2.1 提供的API可以让你写出测试结果明确的可重用单元测试用例

1.2.2 提供了三种方式来显示你的测试结果,而且还可以扩展

1.2.3 提供了单元测试用例成批运行的功能

1.2.4 超轻量级而且使用简单,没有商业性的欺骗和无用的向导

1.2.5 整个框架设计良好,易扩展

1.3 JUnit框架组成

1.3.1 对测试目标进行测试的方法与过程集合,可称为测试用例(TestCase)。

1.3.2 测试用例的集合,可容纳多个测试用例(TestCase),将其称作测试包(TestSuite)。

1.3.3 测试结果的描述与记录。(TestResult) 。

1.3.4 测试过程中的事件监听者(TestListener)。

1.3.5 每一个测试方法所发生的与预期不一致状况的描述,称其测试失败元素(TestFailure)

1.3.6 JUnit Framework中的出错异常(AssertionFailedError)。

1.4 JUnit中常用的接口和类

1.4.1 Test接口:运行测试和收集测试结果

Test接口使用了Composite设计模式,是单独测试用例(TestCase),聚合测试模式(TestSuite)及测试扩展(TestDecorator)的共同接口。

它的public int countTestCases()方法,用来统计测试时有多少个TestCase。

另外一个方法就是public void run( TestResult),TestResult是实例接受测试结果,run方法执行本次测试。

1.4.2 TestCase抽象类:定义测试中固定方法

TestCase是Test接口的抽象实现,(不能被实例化,只能被继承)其构造函数TestCase(string name)根据输入的测试名称name创建一个测试实例。由于每一个TestCase在创建时都要有一个名称,若测试失败了,便可识别出是哪个测试失败。

TestCase类中包含的setUp()、tearDown()方法。

setUp()方法集中初始化测试所需的所有变量和实例,并且在依次调用测试类中的每个测试方法之前再次执行setUp()方法。

tearDown()方法则是在每个测试方法之后,释放测试程序方法中引用的变量和实例。

编写测试用例时,只需继承TestCase,来完成run方法即可,然后JUnit获得测试用例,执行它的run方法,把测试结果记录在TestResult之中。

1.4.3 Assert静态类:一系列断言方法的集合

Assert包含了一组静态的测试方法,用于期望值和实际值比对是否正确,即测试失败,Assert类就会抛出一个AssertionFailedError异常,JUnit测试框架将这种错误归入Failes并加以记录,同时标志为未通过测试。

如果该类方法中指定一个String类型的传参则该参数将被做为AssertionFailedError异常的标识信息,告诉测试人员改异常的详细信息。

JUnit 提供了6大类31组断言方法,包括基础断言、数字断言、字符断言、布尔断言、对象断言。

下表为Assert超类所提供的

    
[3]SSH 获取或添加request,session,application属性
    来源: 互联网  发布时间: 2013-10-30
//获取Session
ActionContext.getContext().getSession.put("user",user);
//获取Application
ActionContext.getContext().getApplication("user",user);

//获取Session

 
 

作者:zhuangjixiang 发表于2013-4-6 22:45:33 原文链接
阅读:0 评论:0 查看评论

    
最新技术文章:
▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎 iis7站长之家
▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3