spy on function jest code example
Example 1: jest spyon
const spy = jest.spyOn(video, 'play');
const spy = jest.spyOn(video, 'play', 'get');
Example 2: jest mock restore
test("mockFn.mockRestore", () => {
const StringUtils = {
toUpperCase(arg) {
return arg && arg.toUpperCase();
}
};
const spy = jest.spyOn(StringUtils, "toUpperCase").mockImplementation(() => "MOCK");
expect(StringUtils.toUpperCase("arg")).toBe("MOCK");
expect(spy).toHaveBeenCalledTimes(1);
expect(jest.isMockFunction(StringUtils.toUpperCase)).toBeTruthy();
spy.mockRestore();
expect(spy("arg")).toBeUndefined();
expect(jest.isMockFunction(StringUtils.toUpperCase)).not.toBeTruthy();
expect(StringUtils.toUpperCase("arg")).toBe("ARG");
expect(spy).toHaveBeenCalledTimes(1);
});
Example 3: jest spy on class method
class MyClass {
methodOne() {
return 1;
}
methodTwo() {
return 2;
}
}
module.exports = MyClass;
test('spy using class method', () => {
const result = new MyClass()
const spy = jest.spyOn(result, 'methodOne')
result.methodOne()
expect(spy).toHaveBeenCalled()
expect(result.methodOne()).toBe(1)
spy.mockReturnValueOnce(12)
expect(result.methodOne()).toBe(12)
})