flutter pc_Flutter实施TDD开发流程

Flutter中TDD的优势

对单元测试非常好的支持是选择Flutter的一个重要原因。因为这是保证TDD流畅进行的重要基础。

Flutter中单元测试的优势主要有两个方面:

1、运行速度快。

Flutter的测试代码运行速度非常快,基本是几秒最慢十几秒就开始运行。我们TDD中需要非常频繁运行测试代码,因此在Android原生上每次测试先编译3分钟的情况对TDD使用是非常巨大的阻碍。而Flutter在这方面提供了非常好的体验。

2、优秀的widget test。

Flutter的widget test为我们提供了可以在PC上测试UI逻辑的解决方案。避免每次需要连接手机测试,为TDD中覆盖UI逻辑提供了有力支撑。

Flutter具体实施TDD

这里就不具体讲怎么使用Flutter的单元测试功能了,网上有很多教程。我们来聊聊哪些内容是需要测试的,如何测试。

先来看架构,以页面为视角的话大体如下。每个页面有UI部分,Bloc承载业务逻辑,Bloc可能会调用公共模块的相关功能。

12ccd19b51e989fcc9126e514c37d355.png

那么这里面哪些部分需要通过TDD的测试驱动出来呢?

我们目前使用如下原则:

  • UI部分
    • UI逻辑要测试(如点击后的动作,页面跳转,数据更新后相关内容是否展示等)
    • 布局不测试(如控件的相对位置,控件大小等)
  • Bloc部分
    • Bloc是业务逻辑的核心,原则上都要测试
  • 基础模块
    • 基础模块通常会和外部接口或第三方库交互因此部分测试
    • 我们自己的代码逻辑要测试
    • 对接口、数据库、第三方库等的调用及返回数据使用mock工具模拟
      • 这里有一点要注意:外部调用时传入的参数是要测试的

汇总如下

9416f5254c959aaa1a09f4e4167d71e1.png

总结

Flutter中实行TDD的核心思想是尽可能多的代码由测试代码驱动出来。Flutter提供的widget test功能为UI逻辑部分的代码由测试驱动出来提供了有力保障。现有的实施原则保证了我们自己的代码中除了UI布局和外部模块调用外,所有的代码都由单元测试驱动出来的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值