1. 加入依赖包
使用Spring的测试框架需要加入以下依赖包:
- JUnit 4 (官方下载:http://www.junit.org/)
- Spring Test (Spring框架中的test包)
- Spring 相关其他依赖包(不再赘述了,就是context等包)
2. 创建测试源目录和包
在此,推荐创建一个和src平级的源文件目录,因为src内的类都是为日后产品准备的,而此处的类仅仅用于测试。而包的名称可以和src中的目录同名,这样由于在test源目录中,所以不会有冲突,而且名称又一模一样,更方便检索。
3. 创建测试类
创建一个测试用的类,推荐名称为 “被测试类名称 + Test”。
测试类应该继承与 AbstractJUnit4SpringContextTests 或 AbstractTransactionalJUnit4SpringContextTests
对于 AbstractJUnit4springcontextTests 和 AbstractTransactionalJUnit4SpringContextTests 类的选择:
如果再你的测试类中,需要用到事务管理(比如要在测试结果出来之后回滚测试内容),就可以使用AbstractTransactionalJUnit4SpringTests类。事务管理的使用方法和正常使用Spring事务管理是一样的。
4. 配置测试类
添加如下内容在class前,用于配置applicationContext.xml文件的位置。
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath*:applicationContext.xml","classpath*:hibernate.xml"}) @TransactionConfiguration(transactionManager="transactionManager", defaultRollback=false) @Transactional public class AppLogTest extends AbstractTransactionalJUnit4SpringContextTests {
5. 创建测试方法
创建测试用方法,推荐名称为 “被测方法名称+ Test”。
测试方法上方加入 @Test
6. 通过JUnit 4 执行
右键方法名,选择则“Run As”→“JUnit Test”即可
附录1:整体测试类文件
import java.util.Date; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.test.annotation.NotTransactional; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.AfterTransaction; import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional; import edu.wanghuan.hrm.dao.AppLogDAO; import edu.wanghuan.hrm.pojo.AppLog; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath*:applicationContext.xml","classpath*:hibernate.xml"}) @TransactionConfiguration(transactionManager="transactionManager", defaultRollback=false) @Transactional public class AppLogTest extends AbstractTransactionalJUnit4SpringContextTests { @Autowired @Qualifier("AppLogDAO") private AppLogDAO appLogDAO; @Test @Rollback(true) // overrides the class-level defaultRollback setting public void testSave(){ AppLog appLog = new AppLog(); appLog.setCreatedDate(new Date()); appLog.setCreatedDept("测试部门"); appLog.setCreator("LegendBeen"); appLog.setDetail("JUnit 4 test"); appLog.setIpAddr("191.168.1.156"); appLog.setModuleName("JUnit4"); appLogDAO.save(appLog); } @Test @NotTransactional public void testList(){ List<AppLog> logs = appLogDAO.findAll(); System.out.println("LIST SIZE: " + logs==null?0:logs.size()); for (AppLog appLog : logs) { System.out.println(appLog.getAppLogId()); System.out.println(appLog.getCreator()); System.out.println(appLog.getCreatedDept()); System.out.println(appLog.getCreatedDate()); System.out.println(appLog.getModuleName()); System.out.println(appLog.getIpAddr()); } } @BeforeTransaction public void verifyInitialDatabaseState() { // logic to verify the initial state before a transaction is started System.out.println("##################Before Transaction"); } @AfterTransaction public void verifyFinalDatabaseState() { // logic to verify the final state after transaction has rolled back System.out.println("##################After Transaction"); } }
相关推荐
这个项目的核心是利用Spring作为应用的ioc(Inversion of Control,控制反转)和aop(Aspect Oriented Programming,面向切面编程)容器,MyBatis作为持久层框架,以及JUnit4用于进行单元测试和集成测试。...
改代码是我的我的一个项目自己写完后自测所以就写了这个junit的单元测试类,以及可能会遇到的一些问题,以及其中的一些经验,项目用的是spring + mybatis。我写的这个测试类基本概括了单元测试的基本用法,只要按照...
通过Spring集成单元测试,以后测试service层内容时,就不用getBean()来获得Service层对象了
在搭建单元测试环境时,需要使用的 Jar 包有 junit4.jar 和 struts2-junit-plugin-2.1.8.jar。junit4.jar 是 Eclipse 自带的,可以在项目路径中导入。struts2-junit-plugin-2.1.8.jar 是 Struts2 提供的测试插件,...
基于Springboot+Junit+Mockito做单元测试的示例 本文将从多个角度详细介绍如何使用Springboot、Junit和Mockito进行单元测试,并以实例代码演示。以下是本文的知识点总结: 一、单元测试的重要性 单元测试是软件...
总之,Spring+JUnit4+Ant的组合为Java开发提供了强大的单元测试能力。通过合理配置和使用这些工具,开发者可以更高效地进行测试,保证代码质量,降低维护成本。在压缩包文件"junitTest"中,可能包含了示例的测试代码...
总的来说,Spring4提供了丰富的测试支持,结合JUnit能够实现从单元测试到集成测试的全面覆盖。这不仅提高了代码质量,也加速了问题定位和修复的过程。在实际开发中,应充分利用这些工具,确保软件的健壮性和稳定性。...
Junit4+Spring2.5单元测试代码示例同时也适用注解注入的形式测试(前提要导好测试的包哦,包MyEclipce自带了)
JUnit Jupiter + JUnit Vintage,包含依赖包:junit-jupiter-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-platform-launcher-1.5.1.jar,junit-platform-testkit-1.5.1.jar,...
在JUnit中,测试类通常继承自`JUnit4`的`TestCase`类,或者在JUnit5中,使用`@Test`注解标记测试方法。这些方法会在运行测试时自动执行,如果方法内部抛出未捕获的异常,那么该测试就会失败。 要开始使用JUnit,...
JUnit作为Java领域最流行的单元测试框架,是开发者必备的工具之一。本学习阶段将带你深入理解和掌握JUnit的使用,以及如何通过单元测试来提升代码质量。 首先,我们需要了解什么是单元测试。单元测试是对软件中的...
总结起来,"maven+spring+mybatis+mysql+junit jar项目框架搭建"是一个完整的Java后端开发流程,涵盖了从项目构建、服务层、数据访问层到数据库管理和单元测试的全过程。这样的框架为开发者提供了一个高效、稳定且...
3.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 (特别注意:Spring3.0里不在提供对jotm的封装,spring-tx里没有JotmFactoryBean.class,我在jar里添加了类) 2)Demo 导入说明: 1.Eclipse ...
【JUnit】是Java语言的一个单元测试框架,它使开发者可以方便地编写和运行可重复的测试,确保代码的正确性和稳定性。在集成开发环境中,JUnit测试通常与持续集成工具一起使用,以保证每次代码更改后都能进行自动测试...
2. **Junit4.8**:JUnit4.8是一个针对Java的单元测试框架,它的主要特性包括注解(@Test)、参数化测试、异常断言等。在测试多线程程序时,JUnit4.8可以帮助我们编写线程安全的测试用例,确保每个线程的行为都符合...
JUnit4则是Java单元测试的重要工具,它简化了编写和执行测试用例的过程。这篇教程将带你了解如何结合Spring与JUnit4进行测试驱动的开发。 首先,Spring框架的核心是IoC(Inversion of Control,控制反转)和DI...
总结来说,Spring Test和JUnit4的组合为Java开发者提供了一套强大的测试工具,可以方便地对Spring应用进行单元测试和集成测试。通过合理的注解使用和测试设计,我们可以确保代码的质量和系统的稳定性。在实际项目...
1. **配置测试环境**:引入Spring Test和JUnit相关的依赖,创建一个继承自`AbstractJUnit4SpringContextTests`或`SpringRunner`的测试类。在测试类上使用`@RunWith(SpringRunner.class)`注解启用Spring测试支持,并...
内容概要:参考Mockito官方API文档,实践框架每个特性。 适合人群:Mockito入门人员以及想全面...能学到什么:“Mockito 4.6.0 + Junit 5”的组合编程。 使用建议:使用前安装好Maven及Java即可,推荐使用VSCode编辑。
【Ant+JUnit+Svn实现自动单元测试】 Ant是一种流行的Java构建工具,它使用XML格式的构建文件(build.xml)来定义一系列的任务,如编译、打包、测试等,以自动化软件开发过程。Ant的主要优点是它的灵活性和可扩展性...