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

边栏推荐
猜你喜欢
随机推荐
花了半个月,终于把一线大厂高频面试题做成合集了
【TA-霜狼_may-《百人计划》】美术2.7 Metallic 与 Speculer流程
MySQL select加锁分析
JVM调优-GC基本原理和调优关键分析
To ensure that the communication mechanism
番茄插件番茄助手下载
面了三十个人,说说真实感受
多商户商城系统功能拆解24讲-平台端分销会员
Task Computing【动态规划_牛客】
把boot和APP一起烧录进MCU
"Research Report on the Development of Global Unicorn Enterprises in the First Half of 2022" released - DEMO WORLD World Innovation Summit ended successfully
Request method ‘POST‘ not supported。 Failed to load resource: net::ERR_FAILED
吴恩达机器学习[9]-神经网络学习
可视化大屏丑?这篇文章教你如何做美观大屏!
界面组件DevExpress ASP.NET Core v22.1 - 增强数据导出功能
如何防止重复下单?
No server is required, teach you to get real-time health code recognition with only 30 lines of code
一文解答DevOps平台的制品库是什么
攻防视角下,初创企业安全实战经验分享
07-输入输出系统







