`
文章列表
JAVA面试题
 类Assert 类Assert是TestCase的基类,其中定义了可供TestCase使用的大量静态方法,用于实际返回值与预期值的比较,这些方法名都是以assert开头,在我们自己写的测试方法中可以使用这些方法用于测试结果的验证。要注意的是JUnit对测试失败(实际值与预期值不符)是以抛出AssertionFailedError异常的形式体现的。我们看一个assert方法的典型实现: static public void assertTrue(String message, boolean condition) { if (!condition) fail(message); ...
protected void runTest() throws Throwable { ...... Method runMethod= null; try { runMethod= getClass().getMethod(fName, null);// fName是测试方法名 } catch (NoSuchMethodException e) { ...... } …… try { runMethod.invoke(this, new Class[0]); } ...... }  类TestSuite 类TestSuite不需要我 ...
 抽象类TestCase 抽象类TestCase实现了接口Test,以下是接口Test的一个方法原型: public abstract void run(TestResult result); TestCase对这个方法的实现如下: public void run(TestResult result) { result.run(this); } 对这个方法的调用又将主动权交给TestResult,由TestResult来执行对被测方法的调用,这样便于TestResult跟踪用例执行结果并记录下来,以便作最后的统计分析。 转到TestResult中这个方法的实现: protected ...
3) 框架常见类介绍 JUnit包含6个包(package):junit.awtui、junit.swingui、junit.textui、junit.extensions、junit.framework、junit.runner。其中前三个包中包含了JUnit运行时的入口程序以及运行结果显示界面,它们对于JUnit使用者来说基本是透明的。junit.runner包中包含了支持单元测试运行的一些基础类以及自己的类加载器,它对于JUnit使用者来说是完全透明的。剩下的两个包是和使用JUnit进行单元测试紧密联系在一起的。其中junit.framework包含有编写一般JUnit单元测试类必须要用到 ...
2) 测试用例类的基本结构 以下是测试用例类的基本结构: public class HelloWorldTest extends TestCase {     /*      * 每次用例执行前要执行的初始化方法      */     protected void setUp( ) throws Exception     {         super.setUp();     }     /*      * 每次用例执行后要执行的清除功能      */     protected void tearDown( ) throws Exception     {         supe ...
1) 基本概念 测试用例(TestCase):同我们公司的测试用例概念,但用例是以测试方法(测试代码)的形式体现的,一个测试方法对应一个测试用例,JUnit框架提供了抽象类TestCase,我们要做的就是继承该类,增加测试方法,在测试方法中实现对被测试代码的调用,并增加验证点。同一个类可以有很多个测试方法,你只要向测试框架提供这个实现类就可以了,框架负责生成测试用例对象(就是实例化测试用例),一个测试方法生成一个测试用例对象,用例有用例名称,取的就是测试方法名。测试方法的原型(函数定义)必须满足以下要求:  当然是公共方法  方法名以“test”开头  方法无参数  方法的返回值类型为v ...
 测试自动化 实现测试自动化的好处大家都很明白,方便回归测试,节省了工作量;另一个好处是便于对测试的监控,这一点我们在后面会谈到。我们模索系统测试自动化已有多年,但效果都不理想,主要原因我觉得和系统测试本身的特点有关,因为系统测试是站在用户角度看系统功能的整体表现(这其中最讨厌的是我们经常还有需求变更,如何做到以不变应万变,我们曾经尝试过,但效果均不理想)。但单元测试不同于系统测试,单元不能独立运行,需要我们实现驱动代码,它的这个特点决定了实现单元测试自动化是非常容易也是顺理成章的事。 3 Java单元测试技术总览 基于Java的开发一般分为Java应用程序开发和Web应用程序开发,目前我们已 ...
 验证(Verify) 用例执行是否成功,需要在测试中添加验证点,需要将预期结果与测试执行获得的实际结果进行比较,为此JUnit为我们提供了验证的基本逻辑框架,其它工具可以基于它实现更复杂的验证逻辑,如DBUnit实现的对数据库表数据的验证。  用例管理 常有同事提到用main方法也能实现对被测单元的驱动,但我觉得最大的不足是无法实现对用例的有效管理,为此JUnit为我们提供了用例管理的基础框架,通过引入测试套的概念将用例有效地组织起来。  结果输出(Report) 测试结束后要能够将本次运行的结果情况形成报告,并以图形化直观的形式报告给用户。JUnit也为我们做到了,尤其是IDE与JUn ...
 框架复杂 WEB开发使用的框架很少有自己独立设计的,一般都会使用现成的架构,如Struts、JSF、WebWork、EJB、Spring、Hibernate、iBATIS等等,不同的框架,能够支持单元测试的程度也是不一样的。  数据库访问技术多 业软的WEB应用开发很少有不访问数据库的,因为多是面向业务的开发,业务离不开数据存储。项目组可能会选择不同的数据库访问技术,如JDBC、EntityBean、Spring、Hibernate、iBATIS等,对于涉及数据库访问的代码如何做单元测试也是我们需要解决的问题。 2 单元测试技术需要解决的问题 有许多的单元测试技术和工具,综合起来,无非是为 ...
1 基于Java开发的技术特点  容器管理的组件开发 开发WEB应用程序,实质上就是在开发一系列组件。组件的类型有很多,JavaBean、Servlet、Filter、JSP Taglib、EJB、Spring Bean,等等。这些组件一般是不能独立运行的,需要将它们布署到WEB服务器,通过与WEB容器或EJB容器交互才能实现一定的业务逻辑,也就是说,组件依赖的许多对象是运行时由容器创建的,如HttpServletRequest、HttpServletResponse、ServletContext、SessionContext、FilterChain、PageContext,等等,这就面临着单 ...
异常捕获机制 BME中定义了一个抽象异常类BMEException,它有两个子类BusinessBMEException和GeneralBMEException。一般情况下我们抛出异常的时候采用throw new BuisinessBMEException(“100010101”,e),其中“100010101”为异常码,e为原始异常。 异常不经处理层层上抛后可以到达显示层,在*.web.xml中配置如下便可以用struts截获异常并跳转页面。 <bme:global-exception> <bme:exception name="exception" ...
BPO 企业自管理 异常处理规范 概述 整个异常处理规范分为以下几个部分: 1、 异常码规范:主要定义了企业自管理各模块的异常编码规则 2、 异常资源规范:主要定义了异常资源的编写规范以及生成流程 3、 异常捕获机制:主要描述了BME框架下的异常捕获及处理流程 异常码规范 异常码的统一格式为:ABBCCDDDD,其中ABB表示产品号,企业自管理为100,CC表示各个模块,DDDD表示各个模块的具体异常码(建议前面两个DD表示小模块号,后面两个DD表示异常码),各个模块请在” BPO企业自管理平台 错误码.xls”中定义和查询。 异常资源规范 每种异常都包含描述(desc)、原因(reaso ...
日志详细规则 运行日志 该日志记录在try{}catch块的catch下面。 格式 WriteLogUtil.writeRunErrorLog("层名:类名.方法名", "入参名 = " + 入参值, 结果值, 异常); 示例 WriteLogUtil.writeRunErrorLog("WService:TermShareNVSWServiceImpl.deleteTermShareByTermShare()"   , "devsList = " + devsList, null, ex); 日志打印 [级别] ...
日志规范 日志类型 日志简要说明 支持的日志级别 运行日志 该日志主要记录系统发生的异常信息,以便于程序人员定位问题。 开发人员编写定位: 在try、catch块中的catch部分编写(即异常发生时),记录异常详细信息。 打印内容包含:日志级别、发生时间、自定义消息、入参、出参、异常信息。 需要开发人员编写的打印内容包含:消息、入参、出参、异常信息。 路径:\logs\commonService\runLogger.log Error、info 调试日志 该日志记录程序运行过程中,所经过方法(只包含action、façade、service层)的开始、入参、结束、出参、异常信息。 开发人员编写定 ...
Global site tag (gtag.js) - Google Analytics