当前位置:网站首页>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行指定的函数:

边栏推荐
猜你喜欢

SAP ABAP SteamPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克

视频字幕API接口文档

NUS颜水成等发布首篇《深度长尾学习》综述

The electromagnetic compatibility EMC protection study notes

可视化大屏丑?这篇文章教你如何做美观大屏!

《2022 年上半年全球独角兽企业发展研究报告》发布——DEMO WORLD世界创新峰会圆满落幕

如何实时监控销售数据?销售看板来帮你!

How to monitor code cyclomatic complexity by refactoring indicators

跟我学 UML 系统建模

在Markdown文件中快速插入本地图片
随机推荐
一文解答DevOps平台的制品库是什么
H5 开发内嵌页面跨域问题
云存储硬核技术内幕——(8) 只缘身在此山中
Pisanix v0.2.0 发布|新增动态读写分离支持
荐书 | 《大脑的奥秘:人人要懂的脑科学》:大脑里面有什么
AIX7.1安装Oracle11g补丁33829709(PSU+OJVM)
一文详解什么是软件部署
学 Go,最常用的技能是什么?打日志
【二叉树】根据描述创建二叉树
MySQL当前读、快照读、MVCC
不需要服务器,教你仅用30行代码搞定实时健康码识别
DMS 有接口获取每个实例下的数据库列表吗
Roslyn 在 msbuild 的 target 判断文件存在
Go Go 简单的很,标准库之 fmt 包的一键入门
Redis持久化操作
RSA306B,500,600系列API接口代码
录音文件识别
Li Mu's deep learning notes are here!
【打卡】广告-信息流跨域ctr预估(待更新)
吴恩达机器学习[9]-神经网络学习