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

边栏推荐
猜你喜欢
随机推荐
云存储硬核技术内幕——(13) 抓手,组合拳与闭环
Manacher(求解最长回文子串)
Redis的主从复制和集群
Byte、Short、Integer、Long内部缓存类的对比与源码分析
无心剑七绝《七夕牵手》
面渣逆袭:MySQL六十六问,两万字+五十图详解
视频字幕API接口文档
Request method ‘POST‘ not supported。 Failed to load resource: net::ERR_FAILED
保证通信的机制有哪些
全差分运放:THS4140
Go Go 简单的很,标准库之 fmt 包的一键入门
在Markdown文件中快速插入本地图片
实战:10 种实现延迟任务的方法,附代码!
分支控制if-else
Jupyter常用操作总结(强烈建议收藏,持续更新实用操作)
RSA306B,500,600系列API接口代码
字节API鉴权方法
平稳发展 | 西欧地区手游玩家的数据和洞察
一文解答DevOps平台的制品库是什么
不需要服务器,教你仅用30行代码搞定实时健康码识别


![吴恩达机器学习[11]-机器学习性能评估、机器学习诊断](/img/99/179c4c2db2b6c1edb61f129d46f313.png)






