摘要
Spring2.5为测试提供了全新的TestContext Framework,在Spring2.5中可以利用注解编写测试用例,本文不会讨论TestContext Framework的信息,仅以一个实际例子来说明如何编写测试用例。
关键字:Spring2.5,Unit Test,JUnit4.4;
内容:
要创建一个基于Spring2.5的JUnit4.4测试用例其实相当简单,主要进行以下几步的工作:
(1)创建一个扩展自AbstractTransactionalJUnit4SpringContextTests的类,该基类是Spring2.5为方便在JUnit4环境进行事务测试的类,它还提供了一个simpleJdbcTemplate属性让你可以方便地操控数据库表,便于对测试数据进行有效的操作;
(2)用@ContextLocation注解指定你要加载的Spring配置信息所在的位置;(默认的加载文件信息请参阅Spring Documentation);
(3)用@Autowired或@Resource注解注入你的Service接口,@Autowrired是指按类型将Spring Bean注入;而@Resource则按名称将Spring Bean注入。
(4)用@Before准备待测试的数据,如果我们的数据库表结构没有任何数据,则可以在这里预先插入记录,以便进行单元测试,当整个测试完成后,这些数据都不会被保留在数据库中。
(5)在需要进行测试的方法上使用JUnit4.4提供的@Test注解进行标示;
下面我们以一个例子来说明如何编写一个测试用例:
<1>示例信息
假设我们有一个名为TrainProjectService的服务类需要进行单元测试,该Service接口的方法如清单1-1所示:
清单1-1
public interface TrainProjectService {
//根据ID获取培训项目信息
public TrainProject getTrainProjectById(Integer trainProjectId);
…
}
Spring配置信息如清单1-2所示:
清单1-2
/cn/com/suhao/test/train/conf/applicationContext-train-service.xml
…
<bean id="trainProjectService"
class="cn.com.suhao.test.train.service.impl.TrainProjectServiceImp">
<property name="trainProjectDao" ref="trainProjectDao" />
</bean>
…
/cn/com/suhao/test/train/conf/applicationContext-train-dao.xml
…
<bean id="trainProjectDao"
class="cn.com.suhao.test.train.dao.impl.TrainProjectDAOImp" parent="parentDao" />
…
<2>测试用例
@ContextConfiguration(locations={"/cn/com/suhao/test/appconf/applicationContext.xml",
"/cn/com/suhao/test/train/conf/applicationContext-*.xml"
}
)
public class TestTrainProjectService extends AbstractTransactionalJUnit4SpringContextTests {
@Autowired
private TrainProjectService trainProjectService;
private Integer projectId;
@Before
public void prepareTestData() {
final String sql = "insert into train_project(project_name, project_attendee) values('English Test', 'Mike')";
KeyHolder keyHolder = new GeneratedKeyHolder();
simpleJdbcTemplate.getJdbcOperations().update(
new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection conn)
throws SQLException {
PreparedStatement ps = conn.prepareStatement(sql);
return ps;
}
}, keyHolder);
projectId = keyHolder.getKey().intValue();
}
@Test
public void testGetTrainProject() {
TrainProject trainProject = trainProjectService.getTrainProjectById(projectId);
Assert.notNull(trainProject);
}
}
分享到:
相关推荐
Junit4+Spring2.5单元测试代码示例同时也适用注解注入的形式测试(前提要导好测试的包哦,包MyEclipce自带了)
对于每个Service层接口上的方法,可以使用JUnit进行单元测试,以确保代码的质量和稳定性。 ```java @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath*:...
本项目"Structs2.0+Spring2.5+Ibatis整合例子"就是这样一个示例,展示了如何将Struts2、Spring和iBatis这三个流行的技术栈整合在一起,以实现MVC(模型-视图-控制器)架构。以下将详细阐述这三个框架的核心功能以及...
5. 测试和运行:通过JUnit进行单元测试,确保各层功能正常,然后部署应用,测试整个流程是否顺畅。 这个框架组合的优点在于,Struts处理用户请求,Spring管理业务逻辑和服务,Hibernate处理数据持久化,三者分工...
7. **测试**:在开发过程中,使用如Hibernate Tools的逆向工程生成数据库脚本,以及使用JUnit和Mockito进行单元测试是常见的实践。 通过标签“源码”和“工具”,我们可以推断这个主题可能包含了实际的代码示例和...
Struts2、Spring2.5和iBatis是Java Web开发中的三大框架,它们的整合使用可以帮助开发者构建高效、灵活的MVC(Model-View-Controller)架构的应用程序。Struts2作为表现层框架,提供了丰富的动作调度和结果处理;...
这个"Spring2.5+Structs2+Hibernate3.3框架例子"是一个经典的组合,旨在帮助初学者理解这些框架如何协同工作,构建高效的企业级应用程序。 **Spring框架**:Spring 是一个全面的后端开发框架,它提供了依赖注入(DI...
总的来说,这个项目展示了如何使用SSI框架进行Web开发,包括基本的CRUD操作和存储过程的使用,以及通过Junit进行测试保证代码质量。开发者可以通过这个例子学习到如何整合这些组件,理解它们在实际项目中的工作原理...
6. **测试整合**: 编写JUnit测试用例,验证Action、Service、DAO三层是否能正常工作。 **常见问题及解决方案**: 1. **空指针异常**: 可能是由于Spring没有正确注入bean,检查配置文件中的bean声明和引用。 2. **...
在这个项目中,使用的是Spring 2.5、Struts 2.1和iBatis 2.3版本,这些组件在2000年代末到2010年代初是非常流行的技术。 **Spring框架**: Spring是一个全面的企业级应用开发框架,提供依赖注入(Dependency ...
5. **测试**:通过编写JUnit测试用例或手动测试,验证SSH框架是否正确集成,功能是否正常。 SSH框架的集成提供了强大的开发能力,但同时也需要开发者具备一定的技术背景和经验。随着技术的发展,现代项目更多地转向...
在Spring框架中,TestContext模块为开发者提供了强大的测试支持,特别是在Spring 2.5版本中,这个测试框架进一步增强了测试的便利性和可扩展性。它允许我们以声明式的方式配置和管理测试环境,包括bean的初始化、...
在本工程中,我们可以看到如何设置Junit测试类,对Spring和Hibernate的集成功能进行验证。 2. Hibernate3.2:作为一款强大的对象关系映射(ORM)框架,Hibernate3.2简化了数据库操作,使得开发者可以使用Java对象而...
- 使用模拟请求工具如JUnit、TestNG,或集成测试框架如Selenium,进行端到端的测试。 以上就是"Struts1 增删改查+分页"项目涉及的主要知识点,涵盖了Struts1框架的基本原理和核心功能。通过这个项目,开发者可以...
8. **测试支持**:Spring 2.5提供了更完善的测试工具,如`@RunWith(SpringJUnit4ClassRunner.class)`和`@ContextConfiguration`注解,使得基于Spring的应用测试更加便捷。 9. **集成其他框架**:Spring 2.5加强了与...
例如,@RunWith(SpringJUnit4ClassRunner.class) 注解可以启动 Spring 上下文,便于测试 Bean 间的协作。 9. **JMS(Java Message Service)支持**:Spring 2.5 支持消息驱动的应用,通过 JMSTemplate 和 Message...
标题中的“spring junit”指的是Spring框架与JUnit测试框架的结合使用。在Java开发中,单元测试是确保代码质量的重要步骤,而JUnit是最流行的Java单元测试框架。Spring框架提供了丰富的功能,包括依赖注入、AOP...
7. **测试框架**:加强了对JUnit和Mockito等测试工具的集成,便于编写单元测试和集成测试。 8. **国际化支持**:通过`MessageSource`接口,Spring 2.5提供了强大的国际化支持,方便应用根据不同地区显示不同语言的...
5. **JUnit**:JUnit是Java语言的一个单元测试框架,帮助开发者编写和执行测试用例,确保代码的质量和稳定性。它是敏捷开发中不可或缺的一部分。 6. **读取Excel**:在Java中,通常使用Apache POI库来读取和写入...
提供了更好的测试支持,包括`@RunWith(SpringJUnit4ClassRunner.class)`和`@ContextConfiguration`注解,使单元测试和集成测试更加方便。 在压缩包"spring2.5需要的jar"中,可能包含了一系列Spring框架的核心库,...