`
阅读更多

    首先导入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
分享到:
评论

相关推荐

    单元测试案例junit +spring mvc +springboot

    - 针对Repository层:如果涉及数据库操作,可以使用H2内存数据库进行测试,确保数据访问的正确性。 5. 测试工具和库 - Mockito:用于创建和管理mock对象,隔离依赖,只测试目标对象。 - Hamcrest:提供丰富的...

    spring单元测试

    Spring Boot的`spring-boot-starter-test`模块包含了JUnit和Mockito等测试工具,而`h2database`依赖则允许我们在测试中使用H2内存数据库。 接下来,我们关注Spring单元测试的实施。在Spring中,我们可以使用`@Run...

    junit测试spring,hibernate的dao层代码

    同时,我们可能需要配置一个内存数据库,比如 `H2`,以替代真实的数据库,减少测试的复杂性和时间消耗。 测试 `DAO` 类的方法时,我们应该针对每个方法编写测试用例,覆盖正常情况、异常情况以及边界条件。例如,...

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

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

    JDBC mysql Junit测试

    - 在测试环境中,考虑使用内存数据库如H2,以减少测试依赖。 在实际项目中,将这些概念整合起来,可以创建一个可靠的JDBC MySQL连接测试框架,确保数据库操作的正确性和稳定性。通过持续集成和自动化测试,能够...

    junit针对spring mvc三层测试

    我们可以使用内存数据库(如H2)或者嵌入式数据库(如HSQLDB)来避免在测试中实际访问生产数据库。同时,使用JPA或Hibernate等持久层框架的测试工具,如Hibernate Test或者Spring Data JPA的@...

    junit学习(十)——Springpring与Hibernate整合的单元测试

    对于数据库操作,由于我们不希望真实修改数据库,所以通常会使用HSQLDB或H2这样的内存数据库进行测试。这些数据库可以在测试过程中快速创建和销毁,不会对实际数据造成影响。 在测试方法上,我们可以使用JUnit的`@...

    springmvc ssh通用的junit测试样例

    1. **配置测试环境**:设置Spring的ApplicationContext,加载测试所需的配置,如模拟数据库连接或使用内存数据库(如H2)。 2. **测试Struts2动作类**:创建Action的实例,模拟ActionContext,调用execute方法,并...

    MyBatis基础代码+单元测试(特好用)

    5. **单元测试**:在单元测试中,我们通常使用如JUnit这样的测试框架,配合Mockito模拟数据库操作,或者使用如H2内存数据库进行真实数据交互的测试。对于MyBatis,我们可以测试Mapper接口的方法,确保它们能够正确...

    Struts+Spring框架下的单元测试[总结].pdf

    如果`findById`涉及到数据库查询,那么需要使用像Hibernate或MyBatis这样的ORM框架提供的测试支持,或者使用像H2这样的内存数据库来运行数据库相关的单元测试。 在编写单元测试时,还需要考虑以下几点: 1. **隔离...

    spring3学习笔记(2)-集成ibatis3进行单元测试

    1. 配置测试环境:创建一个专门为测试用的配置文件,如`test-context.xml`,在这个配置文件中,我们可以使用内存数据库(如H2)替代真实的数据库,以便快速执行测试且不会影响生产数据。 2. 使用@Test注解:在JUnit...

    JUnit(针对spring和hibernate)

    此外,可以利用H2或HSQLDB这样的内存数据库来快速创建临时测试数据库。 在结合Spring和Hibernate进行测试时,有几种常见的测试策略: 1. **单元测试**:专注于单一的函数或方法,通常不涉及数据库交互。你可以使用...

    mybatis项目源码及单元测试

    - 配置数据源,可以通过内存数据库如 H2 或者使用 Mock 数据来模拟真实环境。 - 使用 `@Before` 和 `@After` 注解初始化和清理测试数据。 - 编写测试方法,调用 Service 或 Dao 层的方法,并使用断言验证结果。 ...

    h2.rar_MyEclipse Java_h2_h2 jsp_java h2

    10. **单元测试**:可能使用JUnit进行单元测试,确保代码的正确性。 这个压缩包中的源码是一个很好的学习资源,你可以通过阅读和分析代码来提升你的Java数据库编程和MyEclipse使用技能。同时,对于H2数据库的使用也...

    H2DataBase+iBatis简易demo

    - **测试**:`H2ModelTest`可能是该项目的测试类,它使用JUnit或其他测试框架来验证数据库操作是否正确。测试类可能包括连接H2数据库,执行SQL(如插入、查询、更新、删除),并断言结果。 4. **MyEclipse集成**:...

    SpringMVC+hibernate整合+测试类

    在Hibernate的测试中,通常我们会使用H2内存数据库,这样可以快速创建和销毁数据库,提高测试效率。 总的来说,"SpringMVC+hibernate整合+测试类"的项目涵盖了Web开发中的多个重要环节:前后端交互、数据库操作以及...

    spring-h2-isolation-db-test:使用h2的独立测试环境示例

    H2是一款轻量级、高性能的关系型数据库,常用于单元测试和集成测试场景,因为它可以内存运行,启动快速,并且支持多种数据库模式。 在Spring项目中,测试是保证代码质量和系统稳定性的重要环节。使用H2数据库进行...

    test-db-in-memory:在内存中使用db进行简单测试,例如HSQLDB和H2

    与HSQLDB类似,可以通过JDBC连接创建H2内存数据库,并在测试前后进行初始化和清理: ```java import org.h2.jdbcx.JdbcDataSource; public class Test { private JdbcDataSource dataSource; @Before public ...

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

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

    cdi-deltaspike-demo:CDI 2.0演示(焊接3)+ DeltaSpike数据+ JUnit 5 +嵌入式H2

    综合上述内容,`cdi-deltaspike-demo`是一个基于Java的项目,展示了如何结合CDI 2.0(通过Weld 3实现)、DeltaSpike Data模块、JUnit 5测试框架以及嵌入式H2数据库来构建和测试应用。这个项目可能是为了教育开发者...

Global site tag (gtag.js) - Google Analytics