当前位置: 首页 > news >正文

备案 几个网站中国空间站最新消息新闻

备案 几个网站,中国空间站最新消息新闻,专做童装的网站,达州市建设规划网站哈喽#xff0c;我是老刘 这两天发现一个Flutter 3.24版本的单元测试的一个小bug#xff0c;提醒大家注意一下。 老刘自己写代码十多年了#xff0c;写Flutter也6年多了#xff0c;没想到前两天在一个小小的BottomNavigationBar 组件上翻了车。 给大家分享一下事件的经过。…哈喽我是老刘 这两天发现一个Flutter 3.24版本的单元测试的一个小bug提醒大家注意一下。 老刘自己写代码十多年了写Flutter也6年多了没想到前两天在一个小小的BottomNavigationBar 组件上翻了车。 给大家分享一下事件的经过。 问题经过 这件事的起因是最近想做一个自己用的小AppFlutter实现。 大家知道我一直是TDD的践行者所以就先写了首页的测试代码。 首页底部设计有两个tab按钮我的这个测试是点击按钮切换页面内容。 实现方法是BottomNavigationBar 配合页面内容的TabView。 结果在执行tester.tap方法的地方测试代码就崩了。 就只有一句提示 大家注意 No tests match “xxx…” 这种提示如果经排查发现测试代码中加入某个操作就出现那么就可以怀疑一下是测试框架底层崩溃导致的。 我当时第一反应是不是我的BottomNavigationBar 的用法有问题 因为之前是不用这个组件的我们有自己封装的UI组件库这次是图省事想简单看一下效果。 但是反复排查也没发现问题而且真机运行也没问题。 这时候我还是怀疑我自己哪个地方没用对于是把官方的组件测试代码拿过来试了一下。 testWidgets(BottomNavigationBar callback test, (WidgetTester tester) async {late int mutatedIndex;await tester.pumpWidget(MaterialApp(home: Scaffold(bottomNavigationBar: BottomNavigationBar(items: const BottomNavigationBarItem[BottomNavigationBarItem(icon: Icon(Icons.ac_unit),label: AC,),BottomNavigationBarItem(icon: Icon(Icons.access_alarm),label: Alarm,),],onTap: (int index) {mutatedIndex index;},),),),);await tester.tap(find.text(Alarm));expect(mutatedIndex, 1); });结果也崩了。 这时候已经是凌晨1点多了脑子有点不清醒。 本来打算去睡觉明天再说可是突然灵光一闪是不是我手欠选择了Flutter 3.24.5版本的问题 于是换成3.10结果没问题了测试正常通过。 然后我就清醒了感觉问题不是出在BottomNavigationBar上有可能所有点击事件都有问题。 于是我又写了一个简单的测试代码 testWidgets(Button tap test, (WidgetTester tester) async {int ex 0;await tester.pumpWidget(MaterialApp(home: Scaffold(body: Center(child: TextButton(child: const Text(Alarm), onPressed: () {ex 1;}),),),),);await tester.tap(find.text(Alarm));expect(ex, 1); });果不其然也崩了。 所以应该是Flutter 3.24版本下test环境点击动作有问题。 这时候凌晨两点多已经困的不行了睡觉明天再说。 问题确定 第二天起来理了理思路在想应该先排除一下我的本地环境问题于是在我的笔记本上又尝试了一次。 笔记本也复现了这个问题而且幸运的是笔记本上海多了一个错误提示 [ERROR:flutter/impeller/runtime_stage/runtime_stage.cc(28)] Reached unreachable code. 这个提示怎么看起来是impeler的问题呢 上网搜了一下果然有人报了这个bug [ERROR:flutter/impeller/runtime_stage/runtime_stage.cc(28)] Reached unreachable code. · Issue #147551 · flutter/flutter · GitHub 而且他是在mac上Flutter版本是3.22 我本地测试了一下Flutter 3.19是没问题的所以问题大概率出在3.20之后。 问题的具体细节和原因没有花时间细看。 这里一方面给大家一个提示碰到这个问题大概知道是咋回事。 另一方面也是借着这个定位过程总结一下经验。 总结经验 1、当运行的框架特别是框架的底层代码比如c代码崩溃就很容易出现一些奇怪的现象误导开发者。 比如这次的提示 【No tests match “xxx…”】 2、如果怀疑是test框架的问题可以通过命令行运行并加入一些类似“-v”的参数查看运行更详细的过程。 这样可以帮你快速判断问题来源。 话说自己的课程里还经常提醒这一点结果用到的时候就没想起来。 我是直到第二天用笔记本运行看到异常提示信息才想起来这个属实有点不应该。 3、关于TDD中的UI测试老刘一贯的观点是只测试UI中涉及业务逻辑的部分不测试UI布局和交互的细节。 就好像这次的测试例‘用户点击个人中心按钮页面内容切换为个人中心’ 它测试的其实是如何实现一个UI效果这部分内容是否应该通过测试覆盖应该覆盖到什么程度其实是值得商榷的。 比如如果我通过DefaultTabController TabView TabBar来实现这个效果那其实测试的就是DefaultTabController的内部逻辑了。 好了以上这些基于这次这个问题的思考才是我这篇文章想要表达的核心内容。 如果大家有更多的想法或者不同意见都欢迎交流。 点击免费领老刘整理的《Flutter开发手册》覆盖90%应用开发场景。 可以作为Flutter学习的知识地图。 覆盖90%开发场景的《Flutter开发手册》
http://www.hkea.cn/news/14570318/

相关文章:

  • 凡科网站建设怎么去掉极速建站wordpress媒体文件
  • 哪些网站做家政推广多仓库版仓库管理网站建设源码
  • 西安网站公司建设深圳龙华区新石社区
  • 摄影师网站推荐推广赚钱app
  • 汉阳做网站多少钱淘宝客推广怎样做网站
  • 阿里云服务器做盗版视频网站微信开发公众平台
  • 原墨网站建设建设一个网站首先需要
  • 免费站长工具做喷绘的图在哪个网站找
  • 网站系统名称网站 域名解析出错
  • 门户网站建设意见专业团队张伟原图
  • 旅游网站ppt应做的内容优秀的设计网站有哪些
  • 南昌集团制作网站开发江西门户网站建设
  • 东莞营销型网站哪家好免费在线代理网页
  • 贵州省城乡建设局网签网站婚纱摄影类网站模板
  • 中山网站建设文化价位网站修改关键字
  • python做网站内容爬虫深圳有多少互联网公司
  • 单位的网站建设费如何核算如何自己开发手机app
  • 网站优化工具升上去网站建设方案200字
  • 做网店的网站外贸平台排行榜
  • 网站建设案例完整代码东莞建设网站的公司简介
  • 音乐网站建设流程建网站哪家质量好
  • 做网站怎么去文化局备案wordpress api采集
  • 网站建设的博客wordpress 数据库 清理
  • 注册名字商标查询搜索引擎营销优化的方法
  • 广州建设银行网站自己创业开网店需要什么
  • 有没有做美食的规模网站自己在线制作logo免费u钙网
  • 天津响应式网站设计怎么做网站维护宣传
  • 网站站点建设银行招聘门户网站
  • 标准网站是哪个数据展示网站
  • wordpress 全站备份电商设计素材网站有哪些