当前位置:网站首页>jasmine.any(Function) 的一个使用场景
jasmine.any(Function) 的一个使用场景
2022-08-04 15:52:00 【华为云】
显然,Web 应用中某些功能比其他功能更容易测试。 例如,可以轻松测试纯函数,因为它的返回值对于相同的参数是相同的,并且它的评估没有副作用。 另一方面,一个 UI 组件(例如日历组件)可能有多个子组件、各种输入和输出,并且依赖于外部 API。 有时,很难说测试应该有多彻底。 在某些情况下,验证 happy path 可能就足够了。 在其他情况下,当它是关键软件部分时,您可能希望检查所有边缘情况。
在各种边缘情况的测试用例编写中,就是 jasmine.any(Function) 大显身手的时候。该函数的一个使用场景:
it(`should pass parameters to the original engine instance`, () => { expect(originalEngineInstance).toHaveBeenCalledWith( mockPath, mockOptions, jasmine.any(Function) ); });
语义:
originalEngineInstance 被调用时,传递的第三个参数是任意的函数,即 jasmine.any(Function) 返回的引用。
但是,这个任意的函数,不能是 mockCallback.
it(`should apply optimization wrapper`, () => { // we check, that callback is not the original one expect(originalEngineInstance).not.toHaveBeenCalledWith( mockPath, mockOptions, mockCallback ); });
我们可以通过调试的方式,找到运行时第三个参数,实际是一个定义如下的函数:
而 jasmine.any(Function) 返回的引用,如下图绿色高亮区域所示:
真实被调用的 callback 是这个:
即代码228行指定的函数:
边栏推荐
- 初学爬虫笔记(收集数据)
- The electromagnetic compatibility EMC protection study notes
- 在Markdown文件中快速插入本地图片
- MySQL当前读、快照读、MVCC
- UWP 转换 IBuffer 和其他类型
- 06-总线
- OGG判断mgr状态并自动启动脚本
- Xi'an Zongheng Information × JNPF: Adapt to the characteristics of Chinese enterprises, fully integrate the cost management and control system
- qt 复杂界面信号槽设计
- 什么是 DevOps?看这一篇就够了!
猜你喜欢
numpy入门详细代码
实战:10 种实现延迟任务的方法,附代码!
Redis持久化操作
Byte、Short、Integer、Long内部缓存类的对比与源码分析
张乐:研发效能的黄金三角及需求与敏捷协作领域的实践|直播回顾
Task Computing【动态规划_牛客】
seaborn
DocuWare Platform - Content Services and Workflow Automation Platform for Document Management (Part 1)
使用百度EasyDL实现森林火灾预警识别
What are the useful IT asset management platforms?
随机推荐
ITSM软件与工单系统的区别是什么?
《2022 年上半年全球独角兽企业发展研究报告》发布——DEMO WORLD世界创新峰会圆满落幕
Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇
MySQL当前读、快照读、MVCC
查看每个数据库分配给了哪些用户权限,这个有接口吗
线上一次JVM FullGC搞得整晚都没睡,彻底崩溃
一文解答DevOps平台的制品库是什么
在Markdown文件中快速插入本地图片
C#命令行解析工具
AIX7.1安装Oracle11g补丁33829709(PSU+OJVM)
不需要服务器,教你仅用30行代码搞定实时健康码识别
MySQL select加锁分析
Real-Time Rendering 4th相关资源整理(无需积分 传火)
seaborn
界面组件DevExpress ASP.NET Core v22.1 - 增强数据导出功能
农产品期货开户哪家好??
保证通信的机制有哪些
实战:10 种实现延迟任务的方法,附代码!
Redis持久化操作
flink cdc怎么指定位点,从某个位点开始消费mysql的Binlog?