Flutter 单元测试例子

news2025/1/27 12:43:19

Flutter 单元测试例子

alt

原文 https://medium.com/app-dev-community/flutter-unit-testing-with-simple-examples-9c07499e4079

前言

执行单元测试来验证软件的每个组件。因此,我们需要尽可能多地测试每个单独的微 widget 。这些都是由开发人员在开发阶段完成的。单元测试有助于在 QA 进行测试之前验证和验证所有的功能。此外,它还是一种白盒测试方法,用于探索代码中的缺陷。

让我们用 Flutter 实现单元测试,看看下面的结果。我重申,这对你在移动开发领域的职业发展非常有帮助。因为这是强制性的。

正文

添加依赖项

Flutter 提供了进行单元测试的测试包。首先,您需要创建一个新的 Flutter 项目,并将测试包添加到 pubspec.yaml 文件中。

dependencies:
  flutter:
    sdk: flutter

  test:

创建测试文件

创建要实现的相关测试文件。并且该文件应该在 test 目录下创建。我将目录路径显示如下:

testing_app/
  lib/
    main.dart

  test/
    main_test.dart

实施 Function

然后您需要实现您想要测试的单元。在这里,我正在创建 Counter 类。在主类中,我在 Counter 类中添加了两个方法,一个用于递增,另一个用于递减变量 value 的值。

class Counter {
  int value = 0;
  void increment() => value++;
  void decrement() => value--;
}

实现 Test Function

在 main_test. dart 文件中,我们将按照下面的方式实现测试用例。

// Import the test package and Counter class
import 'package:test/test.dart';
import 'package:slider_app/main.dart';

void main() {

  test('Counter value should be incremented', () {

    final counter = Counter();
    counter.increment();
    expect(counter.value, 1);

  });
}

运行测试

最后,您可以通过单击函数前面的播放图标来运行测试方法。然后您可以看到程序正在构建并成功地运行测试。

alt

结束语

如果本文对你有帮助,请转发让更多的朋友阅读。

也许这个操作只要你 3 秒钟,对我来说是一个激励,感谢。

祝你有一个美好的一天~


© 猫哥

  • 微信 ducafecat

  • https://wiki.ducafecat.tech

  • https://video.ducafecat.tech

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/39951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

回归分析(2) 一元回归模型

如上所述,为了易于确定回归函数μ(x)中的未知参数,我们来讨论变量Y与x之间存在着线性相关关系的情形 散布在某一条直线的周围.于是,我们可以用线性回归方程 来描述Y与x之间的相关关系,并假设相应的误差(称为…

Go-zero框架学习+xorm+gorm配置

Go-zero框架学习xormgorm配置 文章目录Go-zero框架学习xormgorm配置一、框架介绍二、go-zero快速搭建1.下载go-zero2.安装goctl3.项目初始化4.测试5.项目结构6.快速生成rpc服务7.快速添加api接口8.快速生成model服务8.快速生成Dockerfile9.快速生成K8s部署文件三.golang的ORM框…

[go学习笔记.第十七章.redis的使用] 1.redis的使用

1.redis基本介绍 (1).Redis 是 NoSQL 数据库,不是传统的关系型数据库,官网: https://redis.io/ 和http://redis.cn/ (2).Redis: REmote Dlctionary Sever(远程字典服务器), Redis 性能非常高,单机能够达到 15w qps,通常适合做缓存…

刷爆力扣之盛最多水的容器

刷爆力扣之盛最多水的容器 HELLO,各位看官大大好,我是阿呆 🙈🙈🙈 今天阿呆继续记录下力扣刷题过程,收录在专栏算法中 😜😜😜 该专栏按照不同类别标签进行刷题&#xff…

安卓的分区一点有用知识:super、lpunpack、lpdump

我们知道这个安卓的镜像分区有很多个。 那么这个文章要介绍什么呢? 三个点: 一是现在的android支持动态分区,很多的东西都被放到super分区里面了,这个应该是可以配置的。然后super里面有比如system、vendor这种比较大的分区。那…

教务排课系统毕业设计,大学排课系统设计与实现,排课系统论文作品参考

功能清单 【后台管理员功能】 录入分院:录入分院名称,简介,详情 分院管理:管理已经录入分院,支持修改和删除 老师录入:录入老师姓名、联系方式、头像、老师简介 老师管理:管理所有已经录入老师…

基于Matlab模拟用于海况海洋学研究的 X 波段雷达系统(附源码)

目录 一、定义雷达系统参数 二、对海面进行建模 三、配置雷达收发器 四、生成数据多维数据集 五、处理海面回波 六、总结 七、程序 海事雷达系统在充满挑战的动态环境中运行。为了改进对感兴趣目标的检测并评估系统性能,必须了解海面返回的性质。 在本例中&a…

【操作系统】2.4 死锁

这一节也非常重要 2.4.1 死锁的概念 2.4.1 死锁的概念_StudyWinter的博客-CSDN博客 在并发环境下,各种进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象。这就是死锁,死锁发生后&#…

Jest API使用方法

如上面的知识图谱所示,一个常见的测试框架通常需要实现这些功能: ● before/after 钩子函数: 如beforeEach,afterEach, ● Mock方法: 函数Mock,时间mock等。 ● 断言: 判断一个描述是否正确,在Jest中常为 e…

你心心念念的RabbitMQ个人实践来了来了它来了

前言 MQ(Message Queue)就是消息队列,其有点有很多:解耦、异步、削峰等等,本文来聊一下RabbitMQ的一些概念以及使用。 RabbitMq 案例 Springboot整合RabbitMQ简单案例 基本概念 Exchange:消息交换机&a…

云原生系列 【基于CCE Kubernetes编排实战二】

✅作者简介: CSDN内容合伙人,全栈领域新星创作者,阿里云专家博主,阿里云问答板块版主,华为云享专家博主,掘金后端评审团成员 💕前言: 最近云原生领域热火朝天,那么云原生…

Hystirx限流:信号量隔离和线程池隔离

背景: 最近工作中要处理服务高并发的问题,大流量场景下限流熔断降级可以说是必不可少的,打算对限流做一次改造,所以要先了解一下hytrix相关内容,比如了解一下线程池隔离和信号量隔离的区别。 **信号量:**信…

[网络工程师]-应用层协议-DHCP

BOOTP是最早的主机配置协议,动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)则是在其基础上进行了改良的协议,是一种用于简化主机IP配置管理的IP管理标准。通过DHCP协议,DHCP服务器为DHCP客户…

集合学习笔记——Collection 全家桶

Collection是我们日常开发中使用频率非常高的集合,它的主要实现有List和Set,区别是List是有序的,元素可以重复;Set是无序的,元素不可以重复,我们简单看下继承关系: List的实现类主要线程不安全的ArrayList和LinkedList…

推挽输出和开漏输出-三极管-mos管

一、推挽输出 1.1推挽输出的概念 推挽(push-pull)输出是由两个MOS或者三极管组成,两个管子始终保持一个导通,另一个截止的状态。 图1 推挽电路示意图 当输入高电平时,叫做推; 上管Q1导通,下管…

【目标检测】Faster R-CNN论文的讲解

目录:Faster R-CNN论文的讲解一、前言二、回顾Fast R-CNN三、引入Faster R-CNN四、Faster R-CNN的介绍4.1 框架结构4.2 RPN如何产生候选区域的4.3 损失函数4.4 训练候选框提取网络4.5 RPN和Fast R-CNN共享特征的方法4.5.1 交替训练法4.5.2 近似联合训练法一、前言 …

C语言——学生信息管理系统

目录 功能展示 界面展示 所有功能模块: 功能1:菜单模块(显示功能菜单) 功能2:增加学生信息 功能3:输出学生信息(查看所有学习信息) 功能4:修改学生信息 功能5&a…

python3-GUI概述及应用

目录一、什么是GUI二、Python GUIPySimpleGUI概述一、PySimpleGUI简介二、PySimpleGUI特征三、输出设备hello,world猜数字一、玩家猜数字二、电脑猜数字21点游戏一、21点游戏简介二、程序代码一、什么是GUI 图形用户界面(Graphical User Interface,简称…

十六、CANdelaStudio深入-CDD与CDDT的差异(新建自定义服务)

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的CDD与CDDT的差异与新建自定义服务,欢迎…

数字图像处理(一)——什么是数字图像

一、什么是数字图像处理? 一副图像可以被定义为一个二维函数f(x,y),其中x和y是空间平面坐标,而对任意一对空间坐标(x,y)处幅值f称为图像在该点的强度或者灰度。当x和y以及灰度值f是有限的离散数值时,我们称该图像为数字图像。像素…