请教个问题,业务代码依赖 mysql,采用 mock 方式测不了 dao 层,不采用 mock 又会依赖 mysql,但是这样 testCase 怎么走 ci 呢
1
mcfog 2019-12-11 11:35:50 +08:00
db 一样可以 mock,但在此之前,很多人说“单元测试”的时候,其实说的是“自动化测试”,建议先搞清楚概念,这些东西为啥存在解决什么问题
|
2
lazyfighter OP @mcfog 你在说什么? 我在问什么?
|
3
ayase252 2019-12-11 11:43:54 +08:00
猜的,
测试业务代码时 mock dao. dao 的实现测 mysql |
4
11ssss 2019-12-11 11:47:12 +08:00 1
为什么不用 EmbeddedMysql ?
|
5
lazyfighter OP |
6
11ssss 2019-12-11 11:49:09 +08:00
beforetest 启动 EmbeddedMysql +Spring Boot Test 写好 sql 就可以了
|
7
lazyfighter OP @11ssss 目前找到了解决方法是嵌入的 mysql,就是想问问大家的方式
|
8
mcfog 2019-12-11 11:50:39 +08:00
@lazyfighter 所以你自以为你在做单元测试,但其实不是,所以我建议你先搞清楚概念
|
9
lazyfighter OP @mcfog 你把我搞蒙蔽了, 我说的 ci 跑测试的意思是,在 ci 构建的时候,跑单元测试确保 commit 的代码没有问题,我没有说自动化测试,BTW 我确实对自动化测试不是很懂
|
10
mikulch 2019-12-11 11:56:30 +08:00
嗯?我们都是自己往 sql 里面插入数据,然后跑完对应的 case 后删除的。
|
11
lazyfighter OP |
12
qnlrs 2019-12-11 13:36:37 +08:00
ci 里弄个引入数据库镜像,sql 导入入临时数据库里面,用完销毁
|