'How to spyOn a global function and return a value in Jasmine

How can I spy on MyFunction and return 2 in Jasmine 2.0?

I have the following code that errors on the first line inside shouldPass with:

Error: function MyFunction(){ return 1; }() method does not exist

It appears to be using the entire function as the function name

MyFile.js:

MyFunctionToTest = function(){
    return MyFunction() + 1;
}

function MyFunction(){ return 1; }

MyFileSpec.js:

describe("myTest", function(){
    it("shouldPass", function(){
        spyOn("MyFile", MyFunction).and.returnValue(2);

        expect(MyFunctionToTest()).toEqual(3)
    })
})


Solution 1:[1]

You are trying to spy on an anonymous/global function. You can probably just redefine it with a spy.

MyFunction = jasmine.createSpy().and.returnValue(2);

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Seth Flowers