单元测试对于开发人员来说是非常熟悉的,我们每天的工作也都是围绕着开发与测试进行的,在最早的时候测试都是采用工具Debug模式进行调试程序,后来Junit的诞生也让程序测试发生了很大的变化。我们今天来讲解下基于SpringBoot结合Junit怎么来完成单元测试。
本章目的
基于SpringBoot平台整合Junit分别完成客户端、服务端的单元测试。
构建项目
我们首先使用Idea工具创建一个SpringBoot项目,并且添加相关Web、MySQL、JPA依赖,具体pom.xml配置依赖内容如下所示:
.../省略其他配置
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-data-jpa
com.alibaba
druid
1.0.31
org.projectlombok
lombok
mysql
mysql-connector-java
org.springframework.boot
spring-boot-starter-test
test
.../省略其他配置
配置数据库
我们本章的内容需要访问数据库,我们先在src/main/resources下添加application.yml配置文件,对应添加数据库配置信息如下所示:
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8
username: root
password: 123456
#最大活跃数
maxActive: 20
#初始化数量
initialSize: 1
#最大连接等待超时时间
maxWait: 60000
#打开PSCache,并且指定每个连接PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
#通过connectionProperties属性来打开mergeSql功能;慢SQL记录
#connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 1 from dual
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
#配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙
filters: stat, wall, log4j
jpa:
properties:
hibernate:
show_sql: true
format_sql: true
以上配置都是比较常用到,这里不做多解释了。
构建实体
对应数据库内的数据表来创建一个商品基本信息实体,实体内容如下所示:
package com.yuqiyu.chapter35.bean;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
/**
* 商品基本信息实体
* ========================
* Created with IntelliJ IDEA.
* User:
* Date:2017/9/13
* Time:22:20
* =====