首先导入H2内存数据库,Junit4单元测试依赖。
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.185</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency
其次使用H2数据源模拟Oracle
@Component @Profile("testOne") // 指定单元测试活动所匹配的数据源 public class DataSourceConfig4Test { @Bean(name="dataSourceUtils") // 要和模拟的数据源名称相对应 DataSource dataSourceUtils() throws SQLException { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.H2) .addScript("classpath:/H2_TYPE.sql") .addScript("classpath:/INIT_TABLE.sql") .addScript("classpath:/H2_FUNCTION.sql") .addScript("classpath:/INIT_DATA.sql") .build(); } }
H2_TYPE.sql (设置H2所模拟的数据库)
SET MODE Oracle;
INIT_TABLE.sql (单元测试需要的数据库表初始化)
CREATE TABLE TEST ( ID NUMBER(38,0) PRIMARY KEY NOT NULL, PARAM1 VARCHAR2(6) NOT NULL, PARAM2 VARCHAR2(6) NOT NULL, PARAM3 VARCHAR2(1) NOT NULL, PARAM4 VARCHAR2(50) NOT NULL );
H2_FUNCTION.sql (不需要特殊方法时,此不可忽略)
CREATE ALIAS TO_DATE FOR "com.mvn.task.one.Function.toDate";
INIT_DATA.sql (初始化测试数据)
INSERT INTO TEST(ID,PARAM1,PARAM2,PARAM3,PARAM4) VALUES(100,'TEST1','TEST2','2','JKL');
至此H2部分准备完毕,下面来写个Junit4的单元测试类例子
@ActiveProfiles("testOne") // 需要和H2模拟的数据源对应上 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:testspring/applicationContext-test-one.xml") public class oneTest { @Autowired private ITestService iTestService; @Test public void testBengin(){ Test model = iSubcService.findTest("TEST1", "TEST2"); Assert.assertNotNull(model); } }
到此H2和Junit单元测试完成,另外一个数据源单元测试重复以上步骤即可,如有疑问请留言,欢迎拍砖,如有不同意见或更好的解决方案,也请留言~
相关推荐
提供内存数据库的规则(同时支持和 )。 它与所有已知的JDBC访问库兼容,例如 , , , 或普通的JDBC。 为什么? 因为您要测试由代码执行SQL代码而不与实际的DB服务器集成 无需运行数据库服务器并使其可用 您正在...
H2内存数据库(可以与任何其他关系数据库一起使用) 入门 将Maven项目直接导入到Java IDE: Intellij IDEA 弹簧工具套件(STS) 蚀 (可选)要与其他RDBMS一起使用,您需要配置与数据库URL,用户名,密码匹配的...
man子手 用Java编写的hang子手游戏 使用UNIT测试和UI测试的Java项目示例。 命令: 要编译和运行单元测试:... 数据库H2 (内存数据库,在测试中特别有用) 数据库迁移LiquiBase 依赖注入Guice 谢谢 非常感谢这些令人
数据访问层集成测试:在Java中使用像H2这样的内存数据库会带来一些负面影响,因为测试可能取决于内存数据库无法复制的功能。在某些情况下(如使用依赖于提供程序的查询),我们的数据库逻辑可能在本地开发时有效,而...
目录 [约束](#constraints...该项目使用H2内存数据库作为数据存储库。 已启用H2控制台以查看表。 在上访问H2控制台 约束条件 由于时间限制,已实现了简单的异常处理程序 简单的JUnit测试已经实现。 尚未编写集成测试
设计注意事项单元测试使用内存中的H2数据库。 它可以独立运行,而无需外部数据库。 在devops管道中运行单元测试时,这有助于解决问题。如何进行单元测试要运行测试: mvn test上载功能转到任一: 用于测试上传功能。...
h2:内存数据库,用于测试 开发环境 ==== jdk1.8+mysql5.7.22+tomcat8.5.32+IDEA 项目部署 ==== 第一次部署项目 1.修改ssm-rs\resources目录下db.properties的数据库账号密码信息 2.启动redis...
二十一点技术: = Spring MVC = Spring Data JPA = Hibernate = PostgreSQL = Jetty 测试:= Spring Test = JUnit = H2 在内存数据库中要启动应用程序,您需要: PostgreSQL 数据库“blackjack”,模式为“blackjack...
数据库在内存中用于生产,基于文件用于测试。 因此,您只需将 WAR 文件放入 Tomcat,它就会创建表、加载演示数据并启动。依赖关系Tomcat 7 Java 1.7(也适用于 1.6) 春天 4 百里香叶 2.1.4 H2 数据库引擎特征富...
完成:调用了第一个Web服务(GET:/问候语)完成:SPRING JPA的实现完成:完成了第一个测试(JUNIT)完成:将H2添加为内存数据库,要查询该数据库,必须在localhost中完成8080 /控制台TODO:集成数据库TODO:开发更...
该代码已使用JUnit和Mockito,内存数据库中的H2和一些用于集成测试的标准库进行了良好的测试(> 115个测试)。 如果您正在使用此软件或其一部分,请在此处捐款一小笔,以支持此开源: 我目前不在工作...谢谢! ...
H2数据库引擎-Java SQL数据库,内存数据库 Lombok项目-用于自动补充样板代码的Java库 Mapstruct-简化映射实现的代码生成器 Guava-谷歌提供的一组核心Java库,特别使用了Guava Cache JUnit 5-测试框架 怎么跑 生成...
H2作为内存中的数据库 登录回日志 一些Java utils的番石榴 测试: Junit4 + Mockito + Hamcrest为团结 Spring Test + RestAssured进行集成测试 使用类别将慢速测试和快速测试分开 假设条件 transaction.amount> = 0...
java8 集合源码分析 To Be Top Javaer - Java工程师成神之路 主要版本 更新时间 ...元注解、自定义注解、Java...junit、mock、mockito、内存数据库(h2) 正则表达式 java.lang.util.regex.* 常用的Java工具库 commons.lan
测试驱动开发Web项目在此,我使用以下技术来设计我的Web应用程序1-编程语言:Java 2-框架:Spring 3-template引擎:Thymeleaf 4-数据库:Mysql,H2(内存中)5-版本控制:GIT 6-持续集成:Circi-Ci 7-Testing:Junit...