如何解决我应该为功能使用哪种Jest匹配器?
假设一个函数返回了另一个函数。
function foo() {
return () => 1;
}
在expect(foo())
之后我可以使用什么匹配器来确保foo()
返回一个函数?另外,有没有办法验证功能签名?
解决方法
typeof有很多怪癖,但我认为在这种情况下使用是明智的。
expect( typeof foo() ).toBe('function')
您可以使用.length
expect( (a,b,c) => {} ).toHaveLength( 3 )
但是无法在javascript中强制执行参数的类型。所有功能都可以接受任何类型。而且,您始终可以将比“指定”更多的参数传递给函数。而且该函数可能使用arguments
来读取所有这些参数,因此即使.length
在您的用例中也可能用途有限。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。