期望不带参数的 toThrow 函数 - Jasmine
Expect not toThrow function with arguments - Jasmine
我有一个函数可以获取 3 个参数。我想检查这个函数没有抛出错误。
我做了这样的事情:
expect(myFunc).not.toThrow();
问题是myFunc
需要获取参数。如何发送参数?
P.S 我试图传递给它参数,但我得到错误 myFunc(arg1, arg2, arg3)
不是一个函数。
toThrow
匹配器需要将函数作为参数传递给 expect
,因此您可以简单地将函数调用包装在匿名函数中:
expect(function() {
myFunc(arg1, arg2, arg3);
}).not.toThrow();
您还可以使用 bind 创建新的 'version' 函数,调用时将传递提供的参数:
expect(myFunc.bind(null, arg1, arg2, arg3)).not.toThrow();
您可以使用.not
方法:
expect(() => actionToCheck).not.toThrow()
如果您的函数抛出异常,测试无论如何都会失败。所以没有必要明确地为它准备一个 expect 语句。问题是,如果你的测试中没有 expect 语句,它会警告你没有期望。解决方案是有一个空的 expect 语句。
myFunc();
expect().nothing();
这只是另一种方法。
如果您想确保 myFunc() 完全完成或只是挂断,这也很有用。
我有一个函数可以获取 3 个参数。我想检查这个函数没有抛出错误。 我做了这样的事情:
expect(myFunc).not.toThrow();
问题是myFunc
需要获取参数。如何发送参数?
P.S 我试图传递给它参数,但我得到错误 myFunc(arg1, arg2, arg3)
不是一个函数。
toThrow
匹配器需要将函数作为参数传递给 expect
,因此您可以简单地将函数调用包装在匿名函数中:
expect(function() {
myFunc(arg1, arg2, arg3);
}).not.toThrow();
您还可以使用 bind 创建新的 'version' 函数,调用时将传递提供的参数:
expect(myFunc.bind(null, arg1, arg2, arg3)).not.toThrow();
您可以使用.not
方法:
expect(() => actionToCheck).not.toThrow()
如果您的函数抛出异常,测试无论如何都会失败。所以没有必要明确地为它准备一个 expect 语句。问题是,如果你的测试中没有 expect 语句,它会警告你没有期望。解决方案是有一个空的 expect 语句。
myFunc();
expect().nothing();
这只是另一种方法。 如果您想确保 myFunc() 完全完成或只是挂断,这也很有用。