热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

单元测试——持久层单元测试

2019独角兽企业重金招聘Python工程师标准主要依赖:junitjuni

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

主要依赖:

<dependency>

<groupId>junitgroupId>

<artifactId>junitartifactId>

<version>4.12version>

dependency>

 

<dependency>

<groupId>org.springframework.bootgroupId>

<artifactId>spring-boot-test-autoconfigureartifactId>

<version>1.4.5.RELEASEversion>

dependency>

 

com.h2database

h2

test

1.4.194

 

<dependency>

<groupId>org.assertjgroupId>

<artifactId>assertj-coreartifactId>

<version>2.5.0version>

dependency>

 

在spring-boot项目中只需要如下依赖&#xff1a;

 

com.h2database

h2

test

1.4.194

 

<dependency>

<groupId>org.springframework.bootgroupId>

<artifactId>spring-boot-starter-testartifactId>

dependency>

 

 

主要代码&#xff1a;

import com.demo.constants.types.DeleteStatus;
import com.demo.domain.entity.DemoEntity;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
import org.springframework.test.context.junit4.SpringRunner;import java.util.UUID;import static org.springframework.boot.autoconfigure.jdbc.EmbeddedDatabaseConnection.H2;/**
* Author: liyang
* Date: 03/09/2017 10:59 PM
* Version: 1.0
* Desc: repository层测试demo&#xff0c;使用内存数据库 h2 进行测试&#xff0c;不会产生脏数据而影响原始库。
* 推荐使用这种方式进行 repository 测试。
*/
&#64;RunWith(SpringRunner.class)
// 使用 spring-boot-test 提供的jpa测试框架
&#64;DataJpaTest
// 使用 spring-boot-test 提供的默认内存数据库 h2&#xff0c;不需要pom配置自己配置提供的 h2数据库
&#64;AutoConfigureTestDatabase(replace &#61; AutoConfigureTestDatabase.Replace.NONE, connection &#61; H2)
public class DemoRepositoryTest {&#64;Autowired
private TestEntityManager entityManager;&#64;Autowired
private DemoRepository demoRepository;&#64;Test
public void findDemoByName() throws Exception {// parameters
String name &#61; UUID.randomUUID().toString();// 模拟数据
DemoEntity demoEntity &#61; new DemoEntity(name);entityManager.persist(demoEntity);entityManager.flush();// 调用服务
DemoEntity demo &#61; demoRepository.findDemoByName(name);// 断言
Assert.assertTrue(demo.getName().equals(name));}
}

被测试方法&#xff1a;

DemoEntity findDemoByName(String name);

配置文件中不需要配置任何跟数据库有关的信息&#xff0c;jpa、hibernate等等都不需要配置。


转:https://my.oschina.net/kevin2kelly/blog/1531455



推荐阅读
author-avatar
mobiledu2502886767
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有