Как издеваться над классом ES6, который расширяет другой класс, используя шутку - PullRequest
1 голос
/ 14 мая 2019

Я пытаюсь смоделировать пользовательский класс es6, который расширяет другой пользовательский класс, и мой модульный тест выдает ошибку при попытке протестировать один из этих методов класса. Я попытался изменить настройку, чтобы обойти макет класса безуспешно. Я бы предпочел реализовать эти тесты «правильным» способом, поэтому я был бы признателен за помощь в настройке этой конфигурации.

Я пытался выполнить действия, описанные в jest docs https://jestjs.io/docs/en/23.x/es6-class-mocks, но после запуска jest.mock ("путь / к / классу") выдает ошибку при попытке вызвать Class.mockClear ()

// GenericWorker.js

export default class GenericWorker {
    constructor(opt) {
        ...initialize worker with opt
    }

    subscribe() {
        ...do stuff
    }
}
// SpecializedWorker.js

export default class SpecializedWorker extends GenericWorker {

    onSubscribe() {
        this.subscribe();
    }
}
// __tests__/SpecializedWorker.spec.js

import SpecializedWorker from ('../SpecializedWorker');
jest.mock('../SpecializedWorker');

describ('SpecializedWorker', () => {
  beforeEach(() => {
    SpecializedWorker.mockClear();
  });

  it('should call onCallback', () => {
    ...testing stuff
  });
}); 

Мой тест не проходит этап beforeEach () и утверждает, что в SpecializedWorker нет метода "mockClear ()"

Я использую узел v.6.11 и jest v.23.6.0

...