加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

是否可以使用Jasmine的toHaveBeenCalledWith匹配器与正则表达式

发布时间:2020-12-14 06:42:10 所属栏目:百科 来源:网络整理
导读:我已经回顾了Jasmine的 toHaveBeenCalledWith匹配器的文档,以了解是否可能传递一个参数的正则表达式,如果该参数应该是一个字符串。很抱歉,这是不支援的功能。还有一个 issue open on github请求此功能。 我已经挖了一点代码库,我看到如何在existing matc
我已经回顾了Jasmine的 toHaveBeenCalledWith匹配器的文档,以了解是否可能传递一个参数的正则表达式,如果该参数应该是一个字符串。很抱歉,这是不支援的功能。还有一个 issue open on github请求此功能。

我已经挖了一点代码库,我看到如何在existing matcher内部实现这是可能的。我认为它更适合实现它作为一个单独的匹配器,以便抽象是单独捕获。

在此期间,什么可能是一个好的解决方法?

在做了一些挖掘之后,我发现 Jasmine spy个对象有一个调用属性,它有一个 mostRecent()函数。这个函数还有一个子属性args,它返回一个调用参数数组。

因此,当想要检查字符串参数是否匹配特定的正则表达式时,可以使用以下序列对调用参数执行正则表达式匹配:

var mySpy = jasmine.createSpy('foo');
mySpy("bar","baz");
expect(mySpy.calls.mostRecent().args[0]).toMatch(/bar/);
expect(mySpy.calls.mostRecent().args[1]).toMatch(/baz/);

很简单。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读