`
阅读更多

    首先导入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单元测试完成,另外一个数据源单元测试重复以上步骤即可,如有疑问请留言,欢迎拍砖,如有不同意见或更好的解决方案,也请留言~

0
0
分享到:
评论

相关推荐

    Embedded-db-junit:JUnit规则,用于为测试提供嵌入式内存数据库

    提供内存数据库的规则(同时支持和 )。 它与所有已知的JDBC访问库兼容,例如 , , , 或普通的JDBC。 为什么? 因为您要测试由代码执行SQL代码而不与实际的DB服务器集成 无需运行数据库服务器并使其可用 您正在...

    Spring-Rest-API-Unit-Test:[Spring]使用JUnit和Mockito进行Spring RESTful的完整性和模拟测试

    H2内存数据库(可以与任何其他关系数据库一起使用) 入门 将Maven项目直接导入到Java IDE: Intellij IDEA 弹簧工具套件(STS) 蚀 (可选)要与其他RDBMS一起使用,您需要配置与数据库URL,用户名,密码匹配的...

    hangman:用Java编写的hang子手游戏

    man子手 用Java编写的hang子手游戏 使用UNIT测试和UI测试的Java项目示例。 命令: 要编译和运行单元测试:... 数据库H2 (内存数据库,在测试中特别有用) 数据库迁移LiquiBase 依赖注入Guice 谢谢 非常感谢这些令人

    TestContainers-Spring

    数据访问层集成测试:在Java中使用像H2这样的内存数据库会带来一些负面影响,因为测试可能取决于内存数据库无法复制的功能。在某些情况下(如使用依赖于提供程序的查询),我们的数据库逻辑可能在本地开发时有效,而...

    literate-giggle

    目录 [约束](#constraints...该项目使用H2内存数据库作为数据存储库。 已启用H2控制台以查看表。 在上访问H2控制台 约束条件 由于时间限制,已实现了简单的异常处理程序 简单的JUnit测试已经实现。 尚未编写集成测试

    springboot_kotlin:使用Kotlin运行Springboot

    设计注意事项单元测试使用内存中的H2数据库。 它可以独立运行,而无需外部数据库。 在devops管道中运行单元测试时,这有助于解决问题。如何进行单元测试要运行测试: mvn test上载功能转到任一: 用于测试上传功能。...

    基于ssm+shiro+redis+nginx tomcat服务器集群管理项目源码+项目说明.zip

    h2:内存数据库,用于测试 开发环境 ==== jdk1.8+mysql5.7.22+tomcat8.5.32+IDEA 项目部署 ==== 第一次部署项目 1.修改ssm-rs\resources目录下db.properties的数据库账号密码信息 2.启动redis...

    TheBlackJack:二十一点游戏服务器端。 RESTfull 网络服务

    二十一点技术: = Spring MVC = Spring Data JPA = Hibernate = PostgreSQL = Jetty 测试:= Spring Test = JUnit = H2 在内存数据库中要启动应用程序,您需要: PostgreSQL 数据库“blackjack”,模式为“blackjack...

    thymeleaf-test:与 Thymeleaf 集成的 Spring 测试

    数据库在内存中用于生产,基于文件用于测试。 因此,您只需将 WAR 文件放入 Tomcat,它就会创建表、加载演示数据并启动。依赖关系Tomcat 7 Java 1.7(也适用于 1.6) 春天 4 百里香叶 2.1.4 H2 数据库引擎特征富...

    DemoSpringWS

    完成:调用了第一个Web服务(GET:/问候语)完成:SPRING JPA的实现完成:完成了第一个测试(JUNIT)完成:将H2添加为内存数据库,要查询该数据库,必须在localhost中完成8080 /控制台TODO:集成数据库TODO:开发更...

    microservice-rbac-user-management:准备使用Java Spring Boot和REST API在Docker微服务上使用基于用户管理角色的访问控制

    该代码已使用JUnit和Mockito,内存数据库中的H2和一些用于集成测试的标准库进行了良好的测试(&gt; 115个测试)。 如果您正在使用此软件或其一部分,请在此处捐款一小笔,以支持此开源: 我目前不在工作...谢谢! ...

    图书库:图书库管理平台

    H2数据库引擎-Java SQL数据库,内存数据库 Lombok项目-用于自动补充样板代码的Java库 Mapstruct-简化映射实现的代码生成器 Guava-谷歌提供的一组核心Java库,特别使用了Guava Cache JUnit 5-测试框架 怎么跑 生成...

    n26-transactions

    H2作为内存中的数据库 登录回日志 一些Java utils的番石榴 测试: Junit4 + Mockito + Hamcrest为团结 Spring Test + RestAssured进行集成测试 使用类别将慢速测试和快速测试分开 假设条件 transaction.amount&gt; = 0...

    java8集合源码分析-Project:工程目录

    java8 集合源码分析 To Be Top Javaer - Java工程师成神之路 主要版本 更新时间 ...元注解、自定义注解、Java...junit、mock、mockito、内存数据库(h2) 正则表达式 java.lang.util.regex.* 常用的Java工具库 commons.lan

    TestDrivenDevelopment

    测试驱动开发Web项目在此,我使用以下技术来设计我的Web应用程序1-编程语言:Java 2-框架:Spring 3-template引擎:Thymeleaf 4-数据库:Mysql,H2(内存中)5-版本控制:GIT 6-持续集成:Circi-Ci 7-Testing:Junit...

Global site tag (gtag.js) - Google Analytics