5.3使用自定议的测试数据库文件
在前面的章节中,我们学习了如何使用配置文件的去创建表和初始化数据。在测试的时候,我们首先需要保项目的环境是启动的, 这样的话,我们才可以测试我们的数据。当应用连接数据库时,确保我们要使用的数据已经初始化了。在我们测试中,需要我们去刷新或更改数据。Sping让我们有能力去完成这项工作。
5.3.1代码实现
- 首先,我们在src/test目录下创建resources的目录。
- 这个目录下,我们创建一个新的文件test-data.sql在resources的文件下。文件的内容如下:
INSERT INTO author (id, first_name, last_name) VALUES (2, 'Greg', |
- 接着,我们修改BooPubApplicationTests的文件:
public class BookPubApplicationTests { |
- 可以先测试一下,看看是否可行
- 让我们在src/test/resource的目录下创建data.sql的文件,并插入如下内容。注意的是,Spring会同时去执行main和test下的两份data.sql的文件。
INSERT INTO author (id, first_name, last_name) VALUES (3, 'William', |
- 当我们加了另外一本书在数据库时,我们需要修改contextLoads()的测试方法如下:
assertEquals(3, repository.count()); |
- 执行测试类,是要以通过测试。
- 我们需要在src/test/resource目录下创建application.properties文件,内容如下:
spring.datasource.url = |
需要注意的是,Spring Boot只会加载一份的applicaton.properties文件。当我们创建了application.properties在test/resource的目录下时,main/resource下的文件将不会被加载,也就是说,不会出现两份文件合并的情况。因此,我们刚刚test/resource的目录下创建了application.properties的文件中也需要加上spring.jpa.hibernate.dll-auto的配置声明。
5.3.2代码说明
这个章节中,我们依赖于上面实现的应用,让Spring去初始化或装配数据为了达到测试的目的。然而,我们只想要一些数据只用于我们测试当中。这样的情况下,我们可以去看一下ResourceDatabasePopulator和DatabasePopilatorUtils类,这两个类都是为了在我们测试前插入数据。这就好比Spring去扫描schema.sql和data.sql文件一样。下面我们来分步说明一下:
- 我们创建了一个loadDataFixtures()方法,这人方法加了@Before的注释去告知JUnit测试之前调用。
- 在这个方法中,我们包含了classpath:/test-data.sql文件路径,这个文件存入了我们要执行的SQL语句。同时代码中会自动加入@Autowired DataSource ds.
- 因为Spring自动依赖于一个实例类,和@Before注释会在每次测试时都加载一下,然而,我们需要避免出现重复加载数据的情况。为了达到这个目的,我们创建了static Boolean loadDataFixtures的参数,这个参数确保DatabasePopulatorUtils只执行一次。
- 在最后,我们为了将测试和项目中的application.properties的文件分开,我们在src/tes/resource下创建了一份新application.properties.
- 最后需要说明的是,application.propertis文件在项目中只会加载一次。但是Spring提供了大量的配置文件是可以结合使用的,也就是说在同名情况下,会将同名谁的信息进行合并。
5.3使用自定议的测试数据库文件相关推荐
- 【SqlServer】测试数据库文件
或许很少人像我这么纠结,想做些数据库测试,但又因各种坑爹的原因不能用手头上的数据库.于是想网上有没有现成的公共数据库,可以随意使用,不会因为侵权承担任何责任.Google发现国外的开源数据比较多,因为 ...
- Mysql安装测试数据库employees
Mysql安装测试数据库employees 1.下载employees测试数据库文件 2.Ubuntu环境安装 3.windows下安装 1.下载employees测试数据库文件 官网下载:emplo ...
- 软件测试中的程序接缝指什么,接缝滑移-定滑移量常用测试标准与方法
接缝滑移-定滑移量常用测试标准与方法 已被阅读9264次 2018-12-21 织物接缝滑移,也就是之前国内所称的纰裂程度.是指织物经接缝后,缝纫处的纱线抵抗外在拉力的能力,是衡量织物接缝性能的一个重 ...
- SpringCloudGateway路由定义存至Mysql数据库
SpringCloudGateway路由定义存至Mysql数据库 SpringCloudGateway默认根据配置文件或代码在启动时路由定义存在内存中,如果要修改路由配置,需要改动配置文件或代码后重启 ...
- php测试插入,php – 使用Symfony测试数据库插入
今天是个好日子, 在过去的几天里,我一直在研究测试驱动开发,并决定我也需要学习它.虽然我无法弄清楚如何准确地做到这一点. 我的项目依赖于Symfony2.1.6框架和Doctrine,所以我有一些需要 ...
- 一次使用duplicate创建测试数据库的过程
由于管理不善,测试机的环境和生产机的环境已经相差甚远了,于是一狠心重建测试机,重建的第一步,重建数据库,我采用rman的duplicate命令从生产数据库复制到测试数据库的方式,虽然过程不太顺利,还是 ...
- Python 测试驱动开发(五)测试数据库(上)
保存用户输入:测试数据库 要获取用户输入的待办事项,发送给服务器,这样才能使用某种方式保存待办事项,然后再显示给用户查看. TDD的重要思想是必要时一次只做一件事.每次只做必要的操作,让功能测试向前迈 ...
- 使用Navicat Premium 同步 测试数据库 与 正式数据库 数据
目录标题 使用Navicat Premium 同步 测试数据库 与 正式数据库 数据 使用Navicat Premium 同步 测试数据库 与 正式数据库 数据 步骤: 1.使用 Navicat 打开 ...
- benchmarksql测试mysql_使用benchmarkSQL测试数据库的TPCC
压力测试是指在MySQL上线前,需要进行大量的压力测试,从而达到交付的标准.压力测试不仅可以测试MySQL服务的稳定性,还可以测试出MySQL和系统的瓶颈. TPCC测试:Transaction Pr ...
- 非功能测试-数据库awr报告分析
目录 1.使用场景 2.常规分析 2.1确认问题 2.2解决问题 3.awr报告整体观看 1.使用场景 我们项目组在测试阶段,在测试非功能指标时,遇到一系列问题时,麻烦非功能老师帮忙从数据库导出的aw ...
最新文章
- python 函数复习
- 判断三点是顺时针还是逆时针方向
- Codeforces Round #299 (Div. 2) D. Tavas and Malekas kmp
- XPath 轴 Axes
- tomcat-1-初识
- Edraw Office Viewer 8.X Edraw Office Viewer
- ubuntu安装rabbitvcs
- codeforces920 C. Swap Adjacent Elements【连通块 + 前缀和】
- 佳能EOS 500D、尼康D5000、宾得Kx PK 纠结!
- Java整合ORC识别验证码
- Redis Cluster集群
- 里去频闪的插件叫什么_冬天去海南,你才会发现什么叫“不枉此生”!
- 打印选课学生名单(25)
- 如何给div加遮罩?
- 微软语音识别引擎Speech
- 中秋节的特别礼物----属于程序员的专有浪漫
- skywalking—docker镜像构建k8s部署
- 阿里拍卖 捡漏 一元起拍
- EPSON1100清零软件 在哪有?
- CodePush热更新常用命令与注意事项