
请教个问题,业务代码依赖 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 为什么不用 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 导入入临时数据库里面,用完销毁 |