文档章节

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

李阳-kevin
 李阳-kevin
发布于 2017/09/07 17:48
字数 320
阅读 34
收藏 0

主要依赖:

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

</dependency>

 

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-test-autoconfigure</artifactId>

<version>1.4.5.RELEASE</version>

</dependency>

 

<dependency>

<groupId>com.h2database</groupId>

<artifactId>h2</artifactId>

<scope>test</scope>

<version>1.4.194</version>

</dependency>

 

<dependency>

<groupId>org.assertj</groupId>

<artifactId>assertj-core</artifactId>

<version>2.5.0</version>

</dependency>

 

在spring-boot项目中只需要如下依赖:

 

<dependency>

<groupId>com.h2database</groupId>

<artifactId>h2</artifactId>

<scope>test</scope>

<version>1.4.194</version>

</dependency>

 

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

</dependency>

 

 

主要代码:

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,使用内存数据库 h2 进行测试,不会产生脏数据而影响原始库。
 * 推荐使用这种方式进行 repository 测试。
 */
@RunWith(SpringRunner.class)
// 使用 spring-boot-test 提供的jpa测试框架
@DataJpaTest
// 使用 spring-boot-test 提供的默认内存数据库 h2,不需要pom配置自己配置提供的 h2数据库
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE, connection = H2)
public class DemoRepositoryTest {

    @Autowired
    private TestEntityManager entityManager;

    @Autowired
    private DemoRepository demoRepository;

    @Test
    public void findDemoByName() throws Exception {
        // parameters
        String name = UUID.randomUUID().toString();

        // 模拟数据
        DemoEntity demoEntity = new DemoEntity(name);
        entityManager.persist(demoEntity);
        entityManager.flush();

        // 调用服务
        DemoEntity demo = demoRepository.findDemoByName(name);

        // 断言
        Assert.assertTrue(demo.getName().equals(name));
    }
}

被测试方法:

DemoEntity findDemoByName(String name);

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

© 著作权归作者所有

共有 人打赏支持
李阳-kevin
粉丝 4
博文 97
码字总数 42200
作品 0
西安
程序员
学习自动化测试的一些感悟

这个话题比较大,相信大家也都有自己的想法,我在这里写一些我自己的看法,请大家指教。 1、什么叫做自动化测试工程师? 首先,要会使用自动化测试工具; 接下来,对于高手来说,要能写一些独...

白一客
2017/05/25
111
0
一个SpringData JPA入门实例

1.介绍 这是SpringData JPA的文档,是了解SpringData最好的资料了。 http://docs.spring.io/spring-data/jpa/docs/current/reference/html/ 2.入门实例 2.1 创建项目 2.1.1 maven依赖 下面是...

蜡笔小小小新
2016/07/10
961
0
基于 Node.js—Express 框架的博客--LittleBlog

这是一个基于 Node.js——Express 框架的个人博客。支持解析 MarkDown 并生成静态 HTML。 系统架构 特性 博客前后端分离,系统构架实现了层次化、组件化。 前端 前端通过Vue+Vuex,实现了组件...

杜小豆
2016/12/05
2.3K
3
从自动化测试到持续部署,你需要了解这些

在互联网的产品开发时代,产品迭代越来越频繁,“从功能开发完成直到成功部署”这一阶段被称为软件开发“最后一公里”。很多开发团队也越来越认识到,自动化测试和持续部署可帮助开发团队提高...

风起云飞fir_im
2016/06/08
96
0
在.NET下多层架构企业管理系统的开发

摘 要 随着.NET 2.0的发布,在.NET下用多层架构来构建企业管理系统也越来越方便。本文以某国外贸易公司的管理系统为背景,介绍在.NET平台下,采用多层架构构建企业管理系统。 关键词 .NET;单...

青石
2012/02/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
4
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部