babel-plugin-rewire: тестовый приватный метод - PullRequest
0 голосов
/ 10 июля 2019

Используя babel-plugin-rewire , как я могу получить доступ к закрытой функции multiply и вызвать ее для тестирования?

let count = 11;

const plus = (num) => {
  return count + num;
};

export const minus = (num) => {
  return count - num;
};

const multiply = (num) => {
  return count * num;
};

export default plus;
import plus from './math.js';
import { minus, __Rewire__, __RewireAPI__ } from './math.js';

describe('math tests', () => {

  test('math.plus', () => {
    __Rewire__('count', 100);
    const result = plus(50);
    expect(result).toEqual(150); // passes
  });

  test('math.minus', () => {
    __Rewire__('count', 23);
    const result = minus(10);
    expect(result).toEqual(13); // passes
  });

  test('math.multiply', () => {
    __Rewire__('count', 100);
    const multiply = __RewireAPI__.__get__('multiply');
    console.log('multiply', multiply); // undefined
    const result = multiply(3); // error: not a function
    expect(result).toEqual(300);
  });
});
...