我有一个获得3个参数的函数。我想检查一下这个函数没有抛出错误。 我做了这样的事情:
expect(myFunc).not.toThrow();
问题是myFunc
需要争论。我该如何发送参数?
P.S我试图传递它的参数,但我得到myFunc(arg1, arg2, arg3)
不是函数的错误。
答案 0 :(得分:22)
toThrow
matcher要求函数作为参数传递给expect
,这样你就可以简单地将函数调用包装在匿名函数中:
expect(function() {
myFunc(arg1, arg2, arg3);
}).not.toThrow();
您还可以使用bind创建新的'版本'您调用的函数将被提供参数:
expect(myFunc.bind(null, arg1, arg2, arg3)).not.toThrow();