'JS - Mocking an uninitialized class method inside a function
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!
Solution 1:[1]
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);
Solution 2:[2]
There are multiple ways to mock es6 class in Jest: https://jestjs.io/docs/es6-class-mocks
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 | Pavel PazdernĂk |
| Solution 2 | hulufei |
