当前位置:网站首页>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行指定的函数:
边栏推荐
猜你喜欢
随机推荐
招募 | 香港理工大学Georg Kranz 博士诚招博士
第三章 Scala运算符
GPS卫星同步时钟,NTP网络同步时钟,北斗时钟服务器(京准)
GET 和 POST 请求的区别
RSA306B,500,600系列API接口代码
西安纵横资讯×JNPF:适配中国企业特色,全面集成费用管控体系
dot net core 使用 usb
qt 复杂界面信号槽设计
2022-08-04日报:量化细胞内的信息流:机器学习时代下的研究进展
SAP ABAP SteamPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克
Redis持久化操作
Difference between GET and POST requests
成功 解决 @keyup.enter=“search()“ 在el-input 组件中不生效的问题
remote: Check Access Error, please check your access right or username and password!fatal: Authenti
查看每个数据库分配给了哪些用户权限,这个有接口吗
【愚公系列】2022年07月 Go教学课程 028-函数小结案例(通讯录)
RepVGG学习笔记
What is the difference between member variable and local variable
【已解决】allure无法生成json文件和AttributeError: module ‘allure‘ has no attribute ‘severity_level‘
可视化大屏丑?这篇文章教你如何做美观大屏!