Issue
Я высмеиваю функцию (только одну), которая импортируется из другого класса, который вызывается внутри основного класса. Я могу смоделировать функцию и вернуть значения, которые я предоставляю. Но я не могу восстановить смоделированную функцию обратно в нормальное состояние для последующих тестов.
Любая помощь будет оценена!
Использование фреймворка: jest + ts-jest
Код
~ main.ts
import {SubClass} from './subclass.ts'
export class MainClass {
let sub: SubClass = new SubClass()
public async Car(){
let start = await sub.key();
return start
}
}
~ sub.ts
export class SubClass{
public async key(){
return "you can start the car"
}
}
main.test.ts
import {SubClass} from './subclass.ts'
import {MainClass} from './mainclass.ts'
import {mocked} from 'ts-jest/utils'
jest.mock(./subclass.ts)
let main = new MainClass()
let sub = new SubClass()
let mockedFn = mocked(sub,true)
mockedFn.key = jest.fn().mockImplementation(() => console.log('mocking succesfull'))
afterEach(()=>{
mockedFn.key.mockRestore() // tried mockClear(), mockReset()
}
it('test for main func mocked result',async ()=>{
const result = await main.car()
expect(result).toEqual("mocking succesfull")
}
it('test for main func result',async ()=>{
const result = await main.car()
expect(result).toEqual("you can start the car") // getting result as undefined
}