使用Spring进行单元测试,需要spring-mock.jar包
测试程序继承AbstractTransactionalSpringContextTests,需要重写getConfigLocations()方法,返回给spring配置文件名称.spring的单元测试会自动回滚数据库,对于结果的判断可以使用assert断言,需要对数据库进行实际的操作需要setComplete()方法.ps:有必要时需要注入sessionFactory,获得session来保持事务的统一
ex:
public class BaseUnitTest extends AbstractTransactionalSpringContextTests {
private SessionFactory sessionFactory;
@Override
protected String[] getConfigLocations() {
return new String[]{"applicationContext-*.xml"};
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Session getSession(){
return SessionFactoryUtils.getSession(sessionFactory, false);
}
}
public class ModuleManagerTest extends BaseUnitTest {
private UserManager userManager;
private User user = null;
public void testSearchUsers() {
fail("Not yet implemented");
}
public void testAddUser() {
User user= new User();
user.setName("max");
userManager.addUser(user);
this.assertEquals(user.getName(), "max");
//真正插入数据库
//this.setComplete();
}
public void testUpdateUser() {
testAddUser();
//获得当前的session对象
Session session = getSession();
//清除原来的实体对象,以避免具有相同数据库标识的不同的JVM对象放到同一个session对象
//的时候所产生的冲突
session.evict(user);
User newUser = new User();
newUser.setId(user.getId());
newUser.setName("更改之后的用户名");
userManager.updateUser(newUser, 0);
user = UserManager.findUser(user.getId());
this.assertEquals(user.getName(), "更改之后的用户名");
}
public void setModuleManager(ModuleManager moduleManager) {
this.moduleManager = moduleManager;
}
}
分享到:
相关推荐
总结一下,基于Spring的JUnit4单元测试涉及到以下几个关键点: 1. 使用`@RunWith(SpringRunner.class)`和`@ContextConfiguration`设置Spring测试环境。 2. `@Autowired`注解注入需要测试的bean。 3. 编写`@Test`注解...
这篇博客主要探讨了如何使用JUnit进行Spring MVC Controller的单元测试。在实际开发中,单元测试可以帮助我们尽早发现潜在的问题,提高软件的可靠性和可维护性。 首先,让我们了解Spring MVC的基本概念。Spring MVC...
在案例中,你将看到如何创建测试类,定义测试方法,设置测试数据,以及如何利用JUnit和Spring/Struts提供的工具来编写高效的单元测试。通过分析和运行源码,你可以了解如何将这些概念应用于实际项目,提高代码质量。...
基于Spring的JUnit4单元测试
单元测试是一种针对软件中的最小可测试单元(如方法)进行的独立验证,目的是确保这些单元按照预期工作。在Java世界里,JUnit是最常用的单元测试框架,它提供了一套简洁的API来编写和运行测试用例。 Spring Boot...
单元测试是指针对代码中的最小可测试单元进行的测试,通常是一个方法。在Spring3中,我们可以使用JUnit作为主要的测试框架,结合`@RunWith(SpringJUnit4ClassRunner.class)`注解来启动Spring上下文,使得测试类能够...
**Junit单元测试详解** 单元测试是软件开发过程中的重要环节,它允许开发者对程序的各个模块进行独立验证,确保代码的功能正确性。在Java世界里,Junit是最广泛使用的单元测试框架,它为Java程序员提供了简洁易用的...
SpringJUnit就是一种结合了Spring框架和JUnit测试工具的解决方案,它为基于Spring的应用程序提供了强大的单元测试支持。下面我们将深入探讨SpringJUnit的相关知识点。 首先,JUnit是Java编程语言中最常用的单元测试...
本文详细介绍了 Spring Boot 中的单元测试和集成测试的实现细节,包括使用 JUnit 和 Hamcrest 框架来进行单元测试,以及使用@SpringBootTest 注解来标记集成测试。这对于学习 Spring Boot 和测试有重要参考价值。
这个压缩包文件包含了一系列的项目文件,这些文件对于理解一个基于Spring的Java项目结构至关重要: 1. `.project`:这是Eclipse IDE的工作空间项目配置文件,包含了项目的构建路径、JRE设置、Nature(项目类型)等...
4. **运行测试**:通过命令行或者IDE运行Ant任务,Ant会执行JUnit测试,并将结果输出到指定的目录下。 5. **查看测试报告**:Ant可以生成JUnit测试报告,通常为HTML格式,这样我们就可以直观地看到每个测试用例的...
JUnit4是由Ernst Kuhr和Kent Beck开发的开源测试框架,它基于Java语言,用于编写和运行可重复的单元测试。JUnit4相较于早期版本引入了许多改进,如注解、参数化测试和测试套件等,使得测试代码更加简洁和灵活。 2. ...
基于Springboot+Junit+Mockito做单元测试的示例 本文将从多个角度详细介绍如何使用Springboot、Junit和Mockito进行单元测试,并以实例代码演示。以下是本文的知识点总结: 一、单元测试的重要性 单元测试是软件...
单元测试是软件开发中的一个重要环节,它针对代码的最小可测试单元进行验证,确保每个组件都按预期工作。在本示例中,单元测试用于检查Spring Boot与Activiti的集成是否正确,以及相关的业务逻辑是否稳定可靠。通常...
Struts2SpringUnitDemo是一个示例项目,展示了如何在Java应用程序中将Struts2和Spring框架进行集成,并进行单元测试。这两个框架都是Java Web开发中的关键组件,Struts2负责控制层逻辑,Spring则提供了全面的依赖...
在Spring框架中,JUnit是广泛使用的单元测试工具,它与Spring的集成使得我们可以方便地进行基于Java的测试。本文将深入探讨如何在Spring环境中利用JUnit进行"Hello, World!"的测试,同时也涉及到一些源码分析和测试...
这是一个基于Spring3、MyBatis3和JUnit4的可运行项目示例,旨在提供一个完整的、可测试的Java Web应用程序框架。这个项目的核心是利用Spring作为应用的ioc(Inversion of Control,控制反转)和aop(Aspect Oriented...
单元测试是对软件中的最小可测试单元进行检查和验证,对于Java来说,这个单元通常是一个方法。它的目标是确保代码的每个部分都能按照预期工作,以便尽早发现和修复错误。单元测试的实践有助于预防bug,提高代码的...
在本文中,我们将深入探讨如何使用Spring框架进行单元测试,特别是在一个基于Java配置的Web项目中。我们将重点关注如何集成H2内存数据库以简化测试过程,以及如何针对Controller层和服务层进行有效的测试。 首先,...
【基于标注的JUnit测试】 JUnit是Java开发中最常用的单元测试框架之一,它允许开发者编写可重复执行的测试用例来验证代码的正确性。在JUnit4及其后续版本中,引入了基于注解的测试,这大大简化了测试的编写,避免了...