Home > Back-end >  JS - Mocking an uninitialized class method inside a function
JS - Mocking an uninitialized class method inside a function

Time:03-23

Lets say I have this code below and I want to test someFunc() but I want to mock the doSomething() function? How can I do it in a test when the SomeClass is initialized only inside the someFunc() itself and not in the test?

class SomeClass {
  constructor(element){
    this.element = element
  }
  
  doSomething(element){
    ...
  }
}

function someFunc() {
  const newClass = new SomeClass()
  newClass.doSomething() // I want this to get to the mocked function
}

I am using jest, please help!

CodePudding user response:

Try some testing frameworks, most of them provide spies which allow you to mock specific functions for given classes.

For example, you can try Jasmine - https://jasmine.github.io/api/edge/Spy.html Where you would do something like

spyOn(newClass, 'doSomething').and.returnValue(42);

CodePudding user response:

There are multiple ways to mock es6 class in Jest: https://jestjs.io/docs/es6-class-mocks

  • Related