Soft_Job 板


LINE

先确认一下,不知道你们是不是用一些潮潮 der 框架, 然後那框架的官方文件给的范例是看起来简洁漂亮清楚的一两行 code, (例如 service 里一个查询 > return 结果) 然後你们把范例 copy 过来改,直接往里面塞逻辑? 如果是这样,可能需要先做的是把 CRUD 分割出去, 把所有 "用某些参数组一些查询取得查询结果" 这样的东西包出去变成方法呼叫。 这样做之後,应该就能很容易的 mock 掉 CRUD 的部份 然後我觉得更好的情况会是把商业逻辑也包出去, 这样就可以从 service 层再切出更核心更通用的 core 部份, core 的部份不依赖於任何框架或外部环境, 只包含 "接收资料处理逻辑回传资料" 这样做之後,应该就能很单纯的直接给资料测 core 的部份,无需任何 mock (或者说 mock 就是 testing data 本身) 然後哪一种测试要多是依你们的需要而定, 通常整合测试可以 "花较少的时间力气测较大的范围", 如果需要的是做上 production 之前的防护网会比较适合 单元测试足够则可以 "较明确的指出目前有问题与确定正常的部份" 如果需要的是遇到问题时能快速的排查与修复就多加一些 ※ 引述《a804372004 (忽冷忽热摸不着)》之铭言: : 将单元测试实作於专案时,发现绝大部分API都是针对资料库做CRUD,这部分程式透过in : memory 写了整合测试,越写越觉得不对劲,心想单元测试数量不是应该要最多? 网路文 : 章、影片或实体书籍大多也在探讨如何写单元测试,整合测试资源相对少,在想是不是我 : 哪里做错了,恳请各位大神指教。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.226.175.248 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1668932484.A.DB0.html
1F:推 a804372004: 在Service层透过Repository对资料库做CRUD,商业逻辑 11/23 16:04
2F:→ a804372004: 的部份较少,也许单元测试的需求就没这麽多? 11/23 16:07
那的确是,假如都是单纯的 API 读资料库回传结果这类操作, 基本上也没什麽东西能拿去做单元测试 单元测试我觉得有几类比较需要 : 1. 底层核心,偏 utils 的,例如 距离计算,日期的格式化或 parse 等 它们可能被广泛的用在许多地方,比较不能出错 2. 本身内部逻辑复杂的,例如依多项参数计算费用或生成合约 它们如果出错 debug 难度会较高, 有单元测试可协助快速缩小可能出问题的范围 3. 被用在很多步骤的一组流程中的,例如要打多个 API 的一组流程, 如共享交通的借还车,这类型的当有问题但整合测试测不出来时 (例如打 API 的顺序不对,整合测试也没测该顺序的 case) 若有单元测试则可快速确认是不是底层实作的问题, 如果确认不是就能很快的调整排查的方向
3F:→ peter9s3b: 越oo越容易写unittest,先写unittest,元件抽象比较高 11/29 07:00
不那麽直接 有 "好的边界与流程" 会好测试,而 OO 是实现的手法之一, 不过不是唯一的方式,也不保证使用 OO 必然能实现 "好的边界与流程" ※ 编辑: lovdkkkk (111.241.166.152 台湾), 12/01/2022 12:21:42







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP