|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱.
概述
Spring2.5比拟于Spring2.0所新增的最主要的功效能够回结为以下3点:
基于注解的IoC功效;
基于注解驱动的SpringMVC功效;
基于注解的TestContext测试框架。
Spring保举开辟者利用新的基于注解的TestContext测试框架,本文我们将对此举行具体的报告。
低版本的Spring所供应的Spring测试框架构在JUnit3.8基本上扩大而来,它供应了多少个测试基类。而Spring2.5所新增的基于注解的TestContext测试框架和低版本的测试框架没有任何干系。它接纳全新的注解手艺可让POJO成为Spring的测试用例,除具有旧测试框架一切功效外,TestContext还增加了一些新的功效,TestContext能够运转在JUnit3.8、JUnit4.4、TestNG等测试框架下。
间接利用JUnit测试Spring程序存在的不敷
在拙作《精晓Spring2.x—企业使用开辟详解》一书中,笔者已经指出假如间接利用JUnit测试基于Spring的程序,将存在以下4点分明的不敷:
招致Spring容器屡次初始化成绩:依据JUnit测试用例的挪用流程,每实行一个测试办法城市从头创立一个测试用例实例并挪用其setUp()办法。因为在一样平常情形下,我们都在setUp()办法中初始化Spring容器,这意味着测试用例中有几个测试办法,Spring容器就会被反复初始化几次。
必要利用硬编码体例手工猎取Bean:在测试用例中,我们必要经由过程ApplicationContext.getBean()的办法从Spirng容器中猎取必要测试的方针Bean,而且还要举行外型操纵。
数据库现场简单蒙受损坏:测试办法大概会对数据库纪录举行变动操纵,损坏数据库现场。固然是针对开辟数据库举行测试事情的,但假如数据操纵的影响是耐久的,将会构成堆集效应并影响到测试用例的再次实行。举个例子,假定在某个测试办法中往数据库拔出一条ID为1的t_user纪录,第一次运转不会有成绩,第二次运转时,就会由于主键抵触而招致测试用例实行失利。以是测试用例应当既可以完成测试固件营业功效准确性的反省,又可以简单地在测试完成后恢复现场,做到踏雪无迹、雁过无痕。
不简单在统一事件下会见数据库以查验营业操纵的准确性:当测试固件操纵数据库时,为了检测数据操纵的准确性,必要经由过程一种便利路子在测试办法不异的事件情况下会见数据库,以反省测试固件数据操纵的实行效果。假如间接利用JUnit举行测试,我们很难完成这项操纵。
Spring测试框架是专门为测试基于Spring框架使用程序而计划的,它可以让测试用例十分便利地和Spring框架分离起来,以上一切成绩都将水到渠成。
一个必要测试的Spring服务类
在详细利用TextContext测试框架之前,我们先来熟悉一下必要测试的UserService服务类。UserService服务类中具有一个处置用户登录的服务办法,其代码以下所示:
清单1.UserService.java必要测试的服务类
package com.baobaotao.service;
import com.baobaotao.domain.LoginLog;
import com.baobaotao.domain.User;
import com.baobaotao.dao.UserDao;
import com.baobaotao.dao.LoginLogDao;
public class UserService{
private UserDao userDao;
private LoginLogDao loginLogDao;
public void handleUserLogin(User user) {
user.setCredits( 5 + user.getCredits());
LoginLog loginLog = new LoginLog();
loginLog.setUserId(user.getUserId());
loginLog.setIp(user.getLastIp());
loginLog.setLoginTime(user.getLastVisit());
userDao.updateLoginInfo(user);
loginLogDao.insertLoginLog(loginLog);
}
//省略get/setter办法
}
<p>
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的), |
|