我已经回顾了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/);
很简单。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。