博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单元测试mysql切换到h2_java~springboot~h2数据库在单元测试中的使用
阅读量:6376 次
发布时间:2019-06-23

本文共 1514 字,大约阅读时间需要 5 分钟。

单元测试有几点要说的

事实上springboot框架是一个tdd框架,你在进行建立项目时它会同时建立一个单元测试项目,而我们的代码用例可以在这个项目里完成,对于单元测试大叔有以下几点需要说明一下:

单元测试的用例之间不要有相互依赖

单元测试数据来源为本地,不要访问外部资源,外部数据库也是不行的

对于集成测试,每个控制器对应一个测试类,它们可以有统一的抽象基类,用来存储公用的属性,如数据对象,http对象等

引入相关依赖包

testCompile('com.h2database:h2')

下面对h2数据库的配置

spring:

profiles: integTest

cloud.config.enabled: false

h2:

console:

enabled: true

path: /h2

datasource:

url: jdbc:h2:mem:testdb;MODE=MYSQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false

driver-class-name: org.h2.Driver

username: sa

password: sa

schema-username: sa

schema-password: sa

data-username: sa

data-password: sa

schema: classpath:db/*.sql

data: classpath:data/*.sql

initialization-mode: always

platform: h2

下面直接写单元测试即可,业务层不用修改,数据库根据profile去选择mysql还是h2

@RunWith(SpringRunner.class)

@ActiveProfiles("integTest")

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

public abstract class ControllerTestBase {

protected MockMvc mockMvc;

@Autowired

protected ObjectMapper objectMapper;

@Autowired

private WebApplicationContext webApplicationContext;

@Before

public void setUp() {

mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();

}

public class CustomerTagsControllerTest extends ControllerTestBase {

@Autowired

CustomerTagsService customerTagsService;

@Test

public void getCustomerTags() throws Exception {

mockMvc.perform(

get("/api/tags")

.accept(MediaType.APPLICATION_JSON_UTF8))

.andExpect(status().isOk())

.andExpect(jsonPath("$[0].tagsDescription").value("未接"));

}

}

对于h2在单元测试里的使用就说这么说,有不清楚的可以给大叔留言!

转载地址:http://hovqa.baihongyu.com/

你可能感兴趣的文章
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
查看>>
Android于JNI调用列出的程序
查看>>
CSS3-border-radius 属性
查看>>
相似图片搜索的原理(二)(转)
查看>>
(转)Spring并发访问的线程安全性问题(高度总结)
查看>>
解决Activity启动黑屏和设置android:windowIsTranslucent不兼容activity切换动画的问题
查看>>
TextBox 英文文档
查看>>
linux系统调用函数---12
查看>>
C#开发SQLServer的Geometry和Geography存储
查看>>
GPUImage API文档之GPUImageInput协议
查看>>
EBS R12.2应用层关闭脚本的执行过程
查看>>
js:深闭包(范围:上)
查看>>
使用POI导入小数变成浮点数异常
查看>>
Logistic Regression的几个变种
查看>>
PopupMenu消失(Dismiss)抓住
查看>>
Determining if a point lies on the interior of a polygon
查看>>
在 Angular 中实现搜索关键字高亮
查看>>
[Javascript ] Array methods in depth - sort
查看>>
司机福利!Uber即将可以自己选目的地接单啦!
查看>>
pycharm的注册(转载)
查看>>