На основе https://github.com/facebook/jest/blob/master/examples/manual-mocks/models/user.js примеров я создал свой собственный ручной макет:
const RandomNumber = require.requireActual('../RandomNumber');
RandomNumber.prototype.generate = function() {
return this.min;
};
export default RandomNumber;
Для этого модуля:
export default class {
constructor(min, max) {
this.min = min;
this.max = max;
}
generate() {
return Math.floor(Math.random() * (this.max - this.min + 1) + this.min);
}
}
Однако я получил эту ошибку:
TypeError: Невозможно установить свойство 'generate' из неопределенного
Я выяснил, что мне нужно добавить .default
к объекту, который возвращается из requireActual
.То же самое относится и к коду, который использует getMockFromModule
:
const RandomNumberMock = jest.genMockFromModule('../RandomNumber').default;
RandomNumberMock.prototype.generate.mockReturnValue(10);
export default RandomNumberMock;
. Я не видел упоминаний об этом в документах Jest, а в их примерах не используется свойство .default
.
Есть идеи, почему в моей базовой настройке это необходимо?