业务单元测试

2019-12-11 10:41:06 +08:00
 lazyfighter

请教个问题,业务代码依赖 mysql,采用 mock 方式测不了 dao 层,不采用 mock 又会依赖 mysql,但是这样 testCase 怎么走 ci 呢

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/627881

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX