使用Jest / Enzyme测试Chart.js-无法创建图表:无法从给定项目获取上下文

时间:2018-12-28 16:26:58

标签: reactjs chart.js jestjs enzyme

我的测试顺利通过,但是出现以下错误。

  console.error node_modules/chart.js/src/core/core.controller.js:127
  Failed to create chart: can't acquire context from the given item

我环顾四周,并在这里提到了我能找到的最接近的答案:https://github.com/chartjs/Chart.js/issues/3696,但看起来错误似乎是故意导致的正常失败而又不会导致测试失败的方式。

我正在使用Jest / Enzyme编写测试,以检查哪些选项正在传递到图表组件。

  it('xAxis set to false', () => {
    const wrapper = mount(<Chart xAxis='false' chart={parentState.chart} />);
    const BarChart = wrapper.find('Bar');

    console.log(BarChart.props().options);
    expect(BarChart.props().options.scales.xAxes[0].display).toEqual(false);

    wrapper.unmount();
  });

1 个答案:

答案 0 :(得分:0)

当我花一天的时间在问问题之前研究问题时,我总是感到很傻,然后我在15分钟后自己解决了问题...

我将删除答案,而不是删除它,以向可能有类似问题的其他任何人发布答案。我意识到我正在为Chart.js使用包装器react-chartjs-2,所以我在他们的github上进行了搜索,并确定已经有足够的人已经发布了我问题的确切答案。 https://github.com/jerairrest/react-chartjs-2/issues/155

将以下模拟添加到我的setup-jest.js文件中可以解决我收到的控制台错误。

jest.mock('react-chartjs-2', () => ({
  Bar: () => null
}));