Categories
JavaScript Answers

How to use Jasmine to spy on a function without an object?

Spread the love

Sometimes, we want to use Jasmine to spy on a function without an object.

In this article, we’ll look at how to use Jasmine to spy on a function without an object.

How to use Jasmine to spy on a function without an object?

To use Jasmine to spy on a function without an object, we can use the spyOn function.

For instance, we write

import * as FooFunctions from "../foo_functions";

x = FooFunctions.foo(y);

to call foo in FooFunctions in the test file.

Then in the test, we write

spyOn(FooFunctions, "foo").and.callFake(() => {
  //...
});
// ...
expect(FooFunctions.foo).toHaveBeenCalled();

to call spyOn with the FooFunctions module and the 'foo' function name string.

And we call callFake with a function that we mock foo with.

And then we call expect to check if foo is called with toHaveBeenCalled.

Conclusion

To use Jasmine to spy on a function without an object, we can use the spyOn function.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *