ts-jest предоставляет разные экземпляры макета теста и модуля - PullRequest
0 голосов
/ 15 февраля 2020

Я использую автомат c макет файла, который экспортирует функцию, фактический файл выглядит как

export const serialize = (type:boolean) => (data) => {....}

В отладчике я вижу, что в модуле (контроллере) я тестирование, что serialize называется и является макетом.

в моем тесте, у меня есть

import {controller} from '../../src/controller'
import {serialize} from '../../src/serialize'
jest.mock('../../src/serialize');

describe('test', () => {
    it('serialize'), (done) => { 
       controller.put();  //<-- calls serialize
       expect(serialize).toHaveBeenCalled();  // <-- this fails, with 0 calls
    }
})

1 Ответ

0 голосов
/ 18 февраля 2020

Проблема заключалась в том, что в контроллере функция сериализации была вызвана таким образом, что из-за слабого отображения mockConfig в jest, который хранится в WeakMap, был удален. Поэтому я переместил вызов, чтобы G C собрал ссылку.

...