首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Dart单元测试:如何指定我不关心某个值?

在Dart单元测试中,如果你不关心某个值的具体取值,可以使用any关键字来表示。any关键字表示任意值,可以用于指定不关心的值。

例如,假设我们有一个函数add用于将两个数字相加:

代码语言:txt
复制
int add(int a, int b) {
  return a + b;
}

如果我们只关心函数的返回值是否正确,而不关心具体的参数取值,可以在单元测试中使用any关键字来表示不关心的参数:

代码语言:txt
复制
import 'package:test/test.dart';

void main() {
  test('add() should return the sum of two numbers', () {
    expect(add(any, any), equals(5));
  });
}

在上面的例子中,我们使用any关键字来表示add函数的两个参数可以是任意值,只要返回值等于5即可通过测试。

关于Dart单元测试的更多信息,你可以参考腾讯云的产品介绍页面:Dart单元测试 - 腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter App架构:领域模型

也这样做过 ✋。总而言之,APP开发是困难的。像领域驱动设计Domain-Driven Design (DDD) 之类的书可以帮助我们开发复杂的软件工程项目。...在Dart中怎样定义实体类和展示它们。 在model 类中添加业务逻辑 为业务逻辑编写单元测试 什么是领域模型?...❞ 请注意,在这个阶段,我们并不关心这些实体来自哪里,也不关心它们如何在系统中传递。 实体类是我们app的关键部分,因为它为用户解决了领域关系的难题。...下面我们来看看这些实体在dart中长什么样。...也展示了如何定义实体类,以及使用immutable data方式处理我们的业务逻辑。最后也学习了如何为业务逻辑表现单元测试,领域层的单测比较简单,不会有复杂的mock和其他设置。

1.4K20

flutter架构:Repository设计模式

本文中我们将详细讲解「Repository设计模式,「包含以下部分」:」 「Repository设计模式」是什么以及何时使用它 使用「具体」和「抽象」类的实现以及如何权衡使用 如何使用「Repository...仅仅这一点就就觉得使「Repository模式」 是100% 值得我们在实际中使用的。 下面我们就看看如何使用吧! 3....4.1 使用抽象类 优点:提供了统一的接口,不关心具体实现,使用时比较统一。 优点 「:」 完全可以使用不同的实现 ****,替换时只需要更改初始化时的一行代码。...但是呢,具体如何选择,我们还有一个重要的参考标准,就是我们需要为它添加单元测试。 5.repository的单元测试 单元测试时,我们需要mock掉网络调用的部分,是我们的测试更快更准确。...总结 所有事情保持简单是最好的,希望这篇概述能够激发大家更清晰地去思考App的架构,以及分层(UI层、领域和数据层)的重要性。

2.6K30

Flutter Platform Channels(二)

认为method channel的概念是一个不错的答案,但如果它仍然是唯一的答案,我会感到惊讶。 ---- 下面演示是简单情况下你如何Dart端使用method channel调用一些平台代码。...上面的代码示例突出显示method channels 在Dart,Android和iOS上返回处理结果的方式很不一样: 在Dart方面,调用由返回为Future的方法处理。...在Dart端,参数(如果有的话)在receiveBroadcastStream的调用中给出。 这意味着它们只被指定一次,无论在流的生命周期中发生的onListen和onCancel的调用次数如何。...当为使用platform channels的Dart代码编写单元测试时,一个下意识的反应可能是模拟channel对象,就像模拟网络连接一样。...相信这是Flutter 在未来将得到改善的一个领域。

2.8K00

Flutter 多引擎渲染,在稿定 App 的实践(二):原理篇

大家有没有感觉到 add_to_app 的方式开发调试起来也是蛮痛苦的,单元测试也不好做。而且要保持业务层不动的情况下,开发很多额外的 plugins 来支撑 UI,这个成本还是很高的。...Flutter UI 组件独立开发调试,且只关心 API 定义,不关心具体实现。...组件定义采用 YAML 标准化语言定义 RULE 定义 定义 说明 name 组件名称 init 初始化数据 → List<{ name(名称)、type(类型)、note(注释)、default(默认)...→ { note(组件注释)、autolayout(是否是自动布局) } properties 组件属性 → List<{ name(名称)、type(类型)、note(注释)、default(默认)...FGUIComponentAPI 生成双端调用类 iOS 端 从 官方示例 我们可以得知: 一个 FlutterEngineGroup 包括多个 FlutterEngine 实例 FlutterEngine 实例创建上需要指定

1.5K20

flutter路由

路由管理控制 路由是一个应用程序抽象的屏幕或页面; 路由管理就是管理页面之间如何跳转; 路由入栈指打开一个新页面; 路由出栈指一个页面关闭操作; 路由管理指如何来管理路由栈; Navigator是一个管理路由的...widget; NavigatorKey是一个管理路由的Key; 看完本文你将学会路由的使用、管理好一个路由、路由传参、路由带参返回、路由记录、返回到指定路由、路由动画, 然后使用pop操作来进行回退到某个路由...AppBar(title: new Text("新页面:$text")), body: new RaisedButton( onPressed: () => Navigator.pop(context, "是返回...value'); }); } 这样我们就能push到新页面然后点击返回按钮就能把参数返回到push到它的那个方法,然后在then打印出来了: I/flutter (21935): 接收到的参数:是返回...= null) print('接收到的参数:$value'); }); } 效果图: 返回到指定路由 这节我们使用popUntil方法返回到我们想要返回到的某个路由,首先再注册两个路由名: @override

1.7K20

每个开发者都应该懂一点单元测试

前言 笔者在项目中实际有写过单元测试的代码,也用过一些单元测试的框架,但对单元测试的理解都很浅显,直到有一次在InfoQ编辑徐川主导的微信群里面看了蘑菇街小创同学的分享,加深了单元测试的兴趣和理解...,他针对android平台的单元测试写了一个系列的文章,从什么是单元测试单元测试的意义、各种方法怎样做单元测试单元测试和集成测试的区别、各种测试框架和开源库在写单元测试如何很好地被使用、以及如何mock...; 无法测试:比如无返回的方法、UI等。...Mock就是创建一个类的虚假的对象,在测试环境中,用来替换掉真实的对象,以达到两个目的: 验证这个对象的某些方法的调用情况,调用了多少次,参数是什么等等; 指定这个对象的某些方法的行为,返回特定的,或者是执行特定的动作...7 依赖注入在单元测试中的使用 上文中提到的Mock技术就是创建一个类的虚假的对象,在测试环境中用来替换掉真实的对象,但如何在测试环境下,将某个类替换成Mock的对象就需要使用到依赖注入了

90830

如何编写高质量的flutter代码

如何制定规则 编写高质量代码是困难的。特别说明一下,简单的演示 API 用法或展示 UI ,这个是很简单的。难的是,我们如何让自己的代码对其他开发人员有吸引力,让他们对你的代码库进行贡献。...对于 Dart强烈建议使用lints包,对于 Flutter 推荐flutter_lints包。要确保 lint 在 CI 中通过,要以下命令: $ dart analyze 最后就是测试了。...在flutter中有单元测试、集成测试,还有 Widget 测试。测试非常重要,测试能帮助我们说明清楚代码的使用方式和意图。当与上述 指令 结合使用时,这些测试还可以保持代码库的质量。...可以通过如何测试 Flutter 应用程序代码了解有关 Flutter 测试功能的更多信息。...projects 如何在GitHub上设置 如果代码库托管在 GitHub 上, Dart 项目,建议使用Dart Setup进行设置,如果是Flutter项目,建议使用Flutter Action

1.2K20

Flutter 即学即用系列博客——08 MethodChannel 实现 Flutter 与原生通信

比如我在 Flutter UI 上面点击了一个按钮,希望原生做一些处理,那么原生怎么知道? 比如我在原生有些变化需要告知 Flutter,Flutter 又如何获知? 本篇我们先解决第一个问题。...实际案例 接下来我们通过实际案例来说明如何实现 Flutter 向原生发送消息? 我们的案例是假设要获取 Android 设备的当前电量,希望点击按钮之后电量会显示出来。...然后我们 main.dart 修改如下: import 'dart:ui'; import 'package:flutter/material.dart';...运行后效果如下: 接下来就是关键的在点击按钮的时候如何获取原生设备电量。 根据上面的代码,我们知道点击按钮会执行 _getBatteryLevel 方法。因此我们要在这里做一些修改。 3....Flutter 调用 methodChannel API invokeMethod 调用原生某个方法并获取对应的

88630

分享点自己阅读源码的经验

调试源码一般会从这几个方面着手。 样例和单元测试 很多源码都是samples样例项目以及单元测试,你可以从这些可执行的代码入手。...目标明确 阅读的时候一定要有目标地去阅读,比如今天的阅读是为了搞清楚某个类的初始化流程,或者弄明白某个机制等等。...然后只看AuthenticationConverter,其它的同样不关心。如法炮制把几个步骤都搞明白,然后串起来就相当于把整个流程的细节给搞清楚了。...是这么干的: 先看注释,看作者的设计意图,这个比调试重要,好的源码都有详细的注释,包括从命名上,一些词汇都能反映这个东西是干嘛的。 再看每个方法的入参和返回,了解这些返回的详细信息。...比如Spring Bean是如何注册的?注册前干了什么?注册后干了什么?一个一个来,分而治之,最后把它们串起来。这样不但降低了难度,而且提高了成就感。

40450

简单谈谈dart中几种Map的不同

Dart有几种内置集合(Collections),比如Set,List以及Map。了解他们在实现上的优点与缺点有助于你去如何使用他们。 本文是在Dart 2.1.1下演示的。...什么是Map Map是一个关联容器,将键映射到。 键是唯一的,可以指向一个且只能指向一个,但是可以重复的。 键不能为null,但可以为null。...支持工厂构造函数,因此我们也可以像这样创建Map: var gifts= new Map(); 从Dart2开始,new是可选的。...$key"); } 输出如下: 仅遍历:32352 仅遍历:95594 仅遍历:45684 改变一个:32352 改变一个:95594 改变一个:45684 删除后再添加:32352...可以通过如下方式创建HashMap: import 'dart:collection'; main() { var gifts= new HashMap(); } 当你并不关心键值对的顺序的时候可以使用

8.3K41

【Flutter 开发实战】Dart 基础篇:List 详解

List 的小秘密 在 Dart 的舞台上,List 扮演着一个神奇的角色,但在使用它的过程中,可能会遇到一些小问题。让我们一一解决这些谜题吧! 如何判断 List 是否为空?...如何查找 List 中的最大和最小?...List 常用方法: 方法 描述 add 向 List 的末尾添加一个元素 addAll 将一个 List 中的所有元素添加到另一个 List 的末尾 indexOf 查找 List 中某个特定的索引...3. indexOf - 查找 indexOf 方法用于查找 List 中某个特定的索引,如果未找到则返回 -1。...结语 通过这篇博客,我们深入探讨了 Dart 中 List 的方方面面。从基本操作到高级应用,希望你现在对 Dart 中的 List 有了更清晰的认识。 我们学习了如何创建、访问和操作 List。

27910

Flutter技术与实战(5)

在原生代码中完成方法调用的响应 总结 思考 如何Dart层兼容Android/IOS平台特定实现(二) 构造一个复杂App需要什么 平台视图 Flutter 如何实现原生视图的接口调用 如何在原生系统实现接口...UI线程问题定位 如何通过自动化测试提高交付质量 单元测试 UI测试 思考 UI测试 思考 如何构造炫酷的动画效果 动画就是提升用户体验的一个重要方式,一个恰当的组件动画或者页面切换动画,不仅能够缓解用户因为等待而带来的情绪问题...因此对于复杂的网络请求行为,推荐使用目前在 Dart 社区人气较高的第三方 dio 来发起网络请求。 首先需要把 dio 加到 pubspec 中的依赖里。...* 集成极光推送插件,可参考的这篇博客 【Flutter 第三方SDK集成(友盟统计,极光推送,百度地图)】 插件工程 在之前学习了如何在原生工程中的 Flutter 应用入口注册原生代码宿主回调...* 所谓二分调试法,是指通过某种稳定复现的特征(比如 Crash、某个变量的、是否出现某个现象等任何明显的迹象),加上一个能把问题出现的范围划分为两半的手段(比如断点、assert、日志等),两者结合反复迭代不断将问题可能出现的范围一分为二

15.7K30

Flutter必备语言Dart教程04 - 异步,库

现在我们来看看如何Dart中处理异步代码。使用Flutter时,会执行各种操作,例如网络调用和数据库访问,这些操作都应该异步执行。 在Dart中导入库 在Dart中使用异步,需要先导入异步库。...简单来说,Future定义的是“未来”发生的事情,也会在未来某个时刻返回一个给我们。让我们看看如何使用Future。 Future是一个泛型类型,即 Future ,你必须指定返回的类型。...使用new关键字创建Future,Future构造函数接收一个返回类型为T的函数参数。无论您在匿名函数中返回什么,都会被转化为Future。...我们通过调用then函数来订阅Future,这些函数注册了一个回调,当Future发出时调用它。我们还注册了一个catchError来处理在执行Future期间发生的任何异常。...如您所见,在调用函数后添加了一个print语句。在这种情况下,首先执行print语句,然后打印从Future返回的。 但是,如果我们有一个Future,我们想先执行它,然后再执行print语句。

1.6K20

dotnet 如何在 Mock 模拟 Func 判断调用次数

里面通过 Setup 可以说明如何进行模拟,写法是 Setup 里面调用的方法里面传入的参数就是说明当用户也传入什么参数的时候,在 Setup 返回里面添加 Returns 方法说明如何返回...传统的单元测试是要求命名的时候安装英文的规范命名,但是的团队的小伙伴的英文都太渣了,要么就是太好了,反正自己写的单元测试的方法命名自己都看不懂。...第二句传入参数 0 返回是 林德熙是逗比 因为上面定义 如上面代码写的,如果期望定义的参数是一个范围而不是某个数,那么需要采用 It 这个类的帮助 判断参数符合某个条件的任意参数,可以使用 Is...下面代码表示传入的任意的 int 的参数就可以 mock.Verify(func => func(It.IsAny()), Times.Once); 另一个问题是判断调用次数,如果期望的某个方法被调用两次如何写...通过 Times.Exactly 可以指定某个方法就被调用某次 mock.Verify(func => func(0), Times.Exactly(2)); 表示这个方法重来没调用过可以使用

1.2K40

Dart dart:mirrors 库

动态调用是指在编译时不按字面指定评估代码的能力,例如调用一个其名称作为参数提供的方法(因为它在数据库中查找,或者由用户以交互方式提供)。...如何解释这个库的文档 通常,Dart声明的名称使用Symbol类的实例表示。 每当doc讲述一个表示名称的Symbol类的对象时,它就意味着用于构造s的字符串。...当且仅当它是num,bool,String,一个可跨隔离序列化的对象列表,或者带有键和的Map(这些键和都可以跨隔离序列化)的实例时,对象才可以跨隔离进行序列化....DeclarationMirror DeclarationMirror反映了Dart程序中声明的某个实体....MirrorsUsed 描述如何使用“dart:mirrors”的注解(实验). [...] MirrorSystem MirrorSystem是用于反映一组关联库的主要接口. [...]

1.3K30

dotnet 如何在 Mock 模拟 Func 判断调用次数

里面通过 Setup 可以说明如何进行模拟,写法是 Setup 里面调用的方法里面传入的参数就是说明当用户也传入什么参数的时候,在 Setup 返回里面添加 Returns 方法说明如何返回...传统的单元测试是要求命名的时候安装英文的规范命名,但是的团队的小伙伴的英文都太渣了,要么就是太好了,反正自己写的单元测试的方法命名自己都看不懂。...第二句传入参数 0 返回是 林德熙是逗比 因为上面定义 如上面代码写的,如果期望定义的参数是一个范围而不是某个数,那么需要采用 It 这个类的帮助 判断参数符合某个条件的任意参数,可以使用 Is...下面代码表示传入的任意的 int 的参数就可以 mock.Verify(func => func(It.IsAny()), Times.Once); 另一个问题是判断调用次数,如果期望的某个方法被调用两次如何写...通过 Times.Exactly 可以指定某个方法就被调用某次 mock.Verify(func => func(0), Times.Exactly(2)); 表示这个方法重来没调用过可以使用

80830

Flutter响应式编程:Streams和BLoC

,事件,对象,集合,映射,错误或甚至另一个流,任何类型的数据都可以由Stream传递 。 ### 怎么知道Stream传达的东西?...为此,我们应用StreamTransformer来过滤(第14行),只让偶数经过。 RxDart 如今,如果不提及RxDart,那么Streams的介绍将不再完整。...换句话说,UI组件应该只关心UI事物而不关心业务, 依赖Streams独家使用输入(Sink)和输出(流), 保持平台独立, 保持环境独立。...如何将此BLoC模式应用于Counter应用? 将BLoC模式应用于Counter 应用可能看起来有点矫枉过正,但请允许先向你展示...... 已经听到你说“哇......为什么这一切?...正如本文开头所提到的,构建了一个伪应用程序来展示如何使用所有这些概念。 完整的源代码可以在Github上找到。

4.1K90
领券