期望不要用参数抛出函数 - Jasmine

Sag*_*gie 20 javascript testing jasmine karma-runner karma-jasmine

我有一个获得3个参数的函数.我想检查一下这个函数没有抛出错误.我做了这样的事情:

expect(myFunc).not.toThrow();
Run Code Online (Sandbox Code Playgroud)

问题是myFunc需要争论.我该如何发送论据?

PS我试图传递它的参数,但我得到的错误myFunc(arg1, arg2, arg3)不是函数.

Bar*_*icz 30

toThrowmatcher要求函数作为参数传递,expect因此您可以简单地将函数调用包装在匿名函数中:

expect(function() {
    myFunc(arg1, arg2, arg3);
}).not.toThrow();
Run Code Online (Sandbox Code Playgroud)

您还可以使用bind来创建函数的新"版本",在调用时将传递提供的参数:

expect(myFunc.bind(null, arg1, arg2, arg3)).not.toThrow();
Run Code Online (Sandbox Code Playgroud)

  • 或者使用箭头函数:`expect(()=> myFunc(arg1,arg2,arg3)).not.toThrow();` (7认同)
  • 谢谢我所寻找的! (2认同)