javascripttestingjasminekarma-runnerkarma-jasmine

Expect not toThrow function with arguments - Jasmine


I have function that gets 3 arguments. I want to check that this function not throwing an error. I did something like this:

expect(myFunc).not.toThrow();

The problem is myFunc need to get arguments. How can I send the arguments?

P.S I tried to pass it argument but I got error that myFunc(arg1, arg2, arg3) is not a function.


Solution

  • toThrow matcher requires a function to be passed as an argument to expect, so you can simply wrap your function call in an anonymous function:

    expect(function() {
        myFunc(arg1, arg2, arg3);
    }).not.toThrow();
    

    You can also use bind to create a new 'version' of your function that, when called, will be passed the provided arguments:

    expect(myFunc.bind(null, arg1, arg2, arg3)).not.toThrow();