芯片|减少连调、高效集成,试试这个神器( 二 )


  • ……
  • 其次 , 生成的mock数据 , 需要尽可能地覆盖更多的场景 。
    另外 , 生成的mock数据中如果存在一些依赖于外部系统的唯一ID , 允许传入一个ID生成器的hook , 确保生成的Mock数据中的唯一ID在指定范围内 。
    然后 , 生成的mock数据需要持久化到硬盘上 , 以提供长期使用 。
    最后 , 可以指定生成某个API相关的mock数据 , 而非全部数据 。
    /02 清除数据/可以通过清除数据 , 重置mock数据回到初始状态 , 以清理不符合当前API标准的垃圾数据 。 实现这个功能主要有两个点:
    1. 清除数据时需要考虑数据间的关联关系 , 比如清除单据类数据时 , 也应当清除与该单据相关的明细数据 。
    2. 可以指定清除某个指定API的mock数据 , 而非全部数据 。
    /03 导入数据/通过配合导入mock数据功能 , 快速复制出一个完全相同的mock环境 。 实现这点也有两个点:
    1. 可以导出指定API的mock数据 , 而非全部数据 。
    2. 导出的数据建议为csv或者excel格式 , 便于二次编辑 。
    /04 导出数据/通过配合导出mock数据功能 , 快速复制出一个完全相同的mock环境 。
    导入数据时 , 需要进行数据合法性验证 。 如果数据不合法 , 需要进行处理 , 有两种情况:
    • 缺失的数据 , 如果可以自动填充缺省值 , 则自动修正 。
    • 非法数据或者无法自动填充的缺失数据 , 进行相应的提示 。
    /05 mock开关/通过控制开关 , 灵活切换使用真实业务存储中的数据还是使用Mock存储中的数据 。
    /06 mock数据的条件匹配/可以对mock数据的返回内容进行「条件匹配」配置 , 以满足两种能力:
    1. 限定返回的数据范围 。
    2. 实现返回的出参一定与入参存在相关性 。
    /07 mock外部依赖数据/可以将以上能力运用在所依赖的外部数据上 , 以提供系统「无依赖独立运行」的能力 。
    具备这个能力后 , 你所负责系统的测试工作可以不用等待所依赖的外部系统全部都准备就绪后才能开展 , 可以独立进行 。
    好了 , 就这么多 。 可能有的小伙伴会觉得 , 要实现这么多能力 , 得多大工作量啊 。
    我觉得这个问题不能这么考虑 , 我们还要考虑这个工具可以节省多少时间 。 节约的这个时间不仅仅是你自己做自测的时间 , 还有团队中其他人的时间 。 而且这个工具可以长期反复使用 , 时间拉得越长 , 它所发挥的价值也越大 。
    惯例总结一下 。
    这篇呢 , Z哥和你分享了一个我认为很有价值的工具 , 一个需要我们自行开发的mock工具 , 它可以提升整个团队的长期效能 。
    这个工具需要实现以下7个能力:
    1. 自动生成mock数据
    2. 清除数据
    3. 导入数据
    4. 导出数据
    5. mock开关
    6. mock数据的条件匹配
    7. mock外部依赖数据
    我相信 , 一旦你提供了这个工具 , 在团队中你将拥有很好的人缘和口碑~
    不知道你是如何看待类似的mock工具的?欢迎和大家一起聊聊你的看法~
    推荐阅读:
    • 程序员必备 , 《新老系统切换宝典》
    • golang使用3周总结
    也可以「关注」我 , 带你以技术思维看世界~内容包括:架构设计丨分布式系统丨产品丨运营丨个人深度思考 。