Digamos que tengo este código a continuación y quiero probar someFunc() pero quiero simular la función doSomething( doSomething() . ¿Cómo puedo hacerlo en una prueba cuando SomeClass se inicializa solo dentro de someFunc() y no en la prueba?
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 }Estoy usando broma, por favor ayuda!
Pruebe algunos marcos de prueba, la mayoría de ellos proporcionan espías que le permiten simular funciones específicas para clases determinadas.
Por ejemplo, puede probar Jasmine - https://jasmine.github.io/api/edge/Spy.html Donde haría algo como
spyOn(newClass, 'doSomething').and.returnValue(42);Hay varias formas de simular la clase es6 en Jest: https://jestjs.io/docs/es6-class-mocks