基于h2和Spring测试的几个要点
========H2====
下载H2的zip包,解压,运行bin下的批处理文件,自动打开连接页面,注意选择Embedded、Server ,两者的连接方式是不一样的(弄了半天发现写不进数据,就是因为这点)。
h2 的几种Database URLs
Database URLs
Embedded
jdbc:h2:~/test 'test' in the user home directory 在我的文档下用户下建立数据文件
jdbc:h2:/data/test 'test' in the directory /data
jdbc:h2:test in the current(!) working directory
In-Memory
jdbc:h2:mem:test multiple connections in one process
jdbc:h2:mem: unnamed private; one connection
Server Mode
jdbc:h2:tcp://localhost/~/test user home dir 在我的文档下用户下建立数据文件,只有运行时存在
jdbc:h2:tcp://localhost//data/test absolute dir
Server start:java -cp *.jar org.h2.tools.Server
Settings
jdbc:h2:..;MODE=MySQL compatibility (or HSQLDB,...)
jdbc:h2:..;TRACE_LEVEL_FILE=3 log to *.trace.db
=========spring 测试========
测试数据库免不了增删改查,这样会改动数据库,在这里用Spring测试框架可以避免数据库改动。
参考http://zmfkplj.iteye.com/blog/370921
我写了个简单的测试例子 ,用的是springSide,其实也可以继承AbstractTransactionalJUnit4SpringContextTests
如:
public class ArticleDaoTest extends AbstractTransactionalJUnit4SpringContextTests{
package com.xx.unit.dao.account;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springside.modules.test.spring.SpringTxTestCase;
import com.xx.dao.account.ArticleDao;
import com.xx.entity.account.Article;
@ContextConfiguration(locations = {"/applicationContext-test.xml"})
public class ArticleDaoTest extends SpringTxTestCase{
@Autowired
private ArticleDao ad;
@Test
// @Rollback(false)//写入数据库不回滚
// @Repeat(10)//重复执行10次
public void daoTest(){
//保存文章
Article a = new Article();
a.setSubject("dowload");
a.setContent("kkkktest");
ad.save(a);
ad.flush();
//查找文章
a = ad.get(1L);
assertEquals("dowload",a.getSubject());
//删除文章
ad.delete(1L);
ad.flush();
Article a1 = ad.findUniqueBy("id", 1L);
assertNull(a1);
}
}
这样就省得每个类都加入下面类似代码了
public class UserDaoTest {
private ApplicationContext ctx;
@Before
public void before()throws Exception{
ctx = new ClassPathXmlApplicationContext("beans.xml");
}
@After
public void tearDown() throws Exception {
System.out.println("end");
}
@Test
public void saveTest(){
UserDao userDao = (UserDao)ctx.getBean("userDao");
userDao.save();
}
分享到:
相关推荐
在这个场景中,我们将探讨如何将H2内存数据库和Java Persistence API (JPA)集成到Spring Boot3和JDK17的应用中,以及如何利用Actuator进行动态日志级别调整。 首先,H2数据库是一款轻量级、高性能的开源关系型...
6. **@DataJpaTest**:用于JPA实体和仓库的测试,它会自动配置一个内存数据库(如H2)和JPA相关配置,方便进行数据访问层的测试。 7. **Transaction Management**:Spring测试默认在一个独立的事务中运行每个测试...
网上找不到这样的例子,只好我自已整理一份了。 该demo是基于maven集成spring5、hibernate5、spring-data-jpa2、H2的可以运行的最基本的main例子。 希望能对大家有帮助。
在本文中,我们将深入探讨如何使用Spring框架进行单元测试,特别是在一个基于Java配置的Web项目中。我们将重点关注如何集成H2内存数据库以简化测试过程,以及如何针对Controller层和服务层进行有效的测试。 首先,...
springboot+h2+mybatisplus+swagger使用例子 h2数据库例子 H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的...因此采用H2作为开发期、测试期和演示的数据库非常方便,不太适合作为大规模生产数据库。
Spring Data JPA 是 Spring Data 的一个子项目,是对 JPA 的再次封装和抽象,底层还是要使用 JPA 的具体实现,通过提供基于 JPA 的 Repository 极大的减少了 JPA 作为数据访问方案的代码量,你仅仅需要编写一个接口...
总的来说,这个例子展示了如何在Spring MVC和JPA的环境中进行单元测试,特别是涉及事务管理的场景。通过合理运用Spring的测试注解和事务管理机制,我们可以编写出可靠且易于维护的单元测试,提高代码质量。
本文将深入探讨如何利用Spring MVC、Thymeleaf模板引擎、H2内存数据库、Lombok以及Spring Boot中的消息传递功能来创建一个强大的应用程序。 **Spring MVC**: Spring MVC是Spring框架的一部分,它提供了一个用于...
Spring还提供了`@TestBehavior`和`@Given`, `@When`, `@Then`等注解,这些注解来自Spring TestFX,它们可以用于构建基于步骤定义的测试用例,使代码更易于阅读和维护。 在实际项目中,我们还需要考虑测试的隔离性,...
标题中的“国际H2真假U盘测试软件”是一款专门用于检测U盘真实容量和读写性能的专业工具。这款软件能够帮助用户识别市场上可能存在的一些虚假U盘,这些U盘往往标称容量高于实际,或者在使用过程中出现数据丢失、速度...
H2和H∞优化控制理论是现代控制理论的重要分支,它们在控制系统设计中扮演着关键角色。H2和H∞优化控制理论旨在设计控制器以使闭环系统在稳定的同时达到一定的性能指标。这一理论尤其在面对系统模型不确定性时显得尤...
本项目是一款基于Spring Boot、Nacos、H2数据库及JPA技术的集成设计源码,采用Java语言编写,包含27个文件,其中包括2个数据库文件、1个Git忽略文件、1个许可文件、1个Markdown文件、1个Maven构建文件、1个命令文件...
在Java开发领域,Spring框架是应用最广泛的框架之一,它为构建企业级应用...在“spring-h2-isolation-db-test-main”这个项目中,应该包含了上述所有组件和配置,可以作为参考来理解和实践基于Spring的H2数据库测试。
具体包括添加H2数据库依赖、配置Spring Boot的数据源连接信息、对Mybatis进行基本设置,以及如何初始化和操作数据库。 适用人群:该教程适合已具备基础Java和Spring Boot开发经验的开发者,尤其是需要快速构建轻量...
本项目通过Java与Spring Boot,利用Maven作为项目管理工具并结合H2内存数据库以及Postman测试,详细阐述了建立图书管理系统的全过程。系统提供图书管理的基础CRUD操作——增加图书记录,查询书籍信息,修改图书详情...
Struts和Spring是两个在Java Web开发中广泛使用的框架,Struts主要负责控制层的处理,而Spring则提供了全面的依赖注入(DI)和面向切面编程(AOP)等功能,便于实现业务逻辑和服务的解耦。在这样的框架组合下进行...
标题中的“ha_h2testw”是一款用于测试U盘性能的工具,主要目的是验证U盘的读写速度、检查存储空间的真实容量以及检测是否存在坏块等问题。这款软件在IT行业中被广泛用来确保U盘的质量和可靠性,对于经常使用U盘进行...
H2数据库是一个开源、轻量级、嵌入式的Java SQL数据库,它被广泛用于开发、测试和学习SQL的场景。由于其易于使用和强大的功能,H2成为了许多Java开发者首选的本地测试数据库。在这个“H2数据库SQL在线测试平台”中,...
8. **H2 内存数据库**:在开发阶段,Spring Boot 默认会启用 H2 数据库,这是一款轻量级的内存数据库,方便开发和测试。 9. **Actuator**:Spring Boot Actuator 提供了一套监控和管理应用的工具,包括健康检查、...
构建一个基于Spring Boot的简历系统是一个涉及多个步骤和组件的项目。这里我将提供一个基本的概念框架和关键步骤,帮助你开始这个项目。 1. 项目规划 首先,明确你的简历系统的功能需求。一个基本的简历系统可能...