Проверьте метод подкласса - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь проверить, что метод X класса A вызывает импортированную функцию Y. Класс A является подклассом класса B, который должен быть отключен.

Класс А выглядит так:

const B = require('./B');
const { Y } = require('../util');
class A extends B {
  constructor() {
    super('/A');
    this.setCors('');
    this.app.post('', this.X.bind(this));
  }

  X(req, res) {
    Y();
  }
}

module.exports = A;

Попытка тестирования (после Jest Official Docs ):

const A = require('../path/to/A');
const B = require('../path/to/B');
jest.mock('../path/to/B', () => {
  return jest.fn().mockImplementation(() => {
    return { setCors: jest.fn(), app: { post: jest.fn() } };
  });
});

test('method X calls function Y', () => {
  (new A()).X();
  expect(Y).toBeCalled();
});

Это дает ошибку TypeError: Cannot read property 'bind' of undefined о конструкторе A.

Возможно, надо просто издеваться над конструктором, но я не уверен, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...