首页 > 解决方案 > React 测试库 - “messageParent”只能在工作人员内部使用

问题描述

我正在使用 RTL 测试一个反应组件,每次我运行测试时,我都会得到,

"messageParent" can only be used inside a worker

**这是代码

describe('Header', () => {
  it('validates header component is rendered', () => {
    const { getByTestId } = render(<Header patientName="Jake Bland" />);
    expect(getByTestId('patient-name')).toHaveTextContent(/^Jake Bland$/);
    expect(getByTestId('dateRange')).toBe(dateRange);
  });
});

对此的任何帮助将不胜感激。

标签: reactjsunit-testingjestjsreact-testing-libraryjest-dom

解决方案


我遇到了同样的问题,它是由调用HTMLElement引起toBe()的。toEqual()所以你最有可能的罪魁祸首在这里,因为getByTestId返回一个 HTMLElement:

expect(getByTestId('dateRange')).toBe(dateRange);

我通过测试元素的文本内容来解决我的问题。

expect(getByTestId('dateRange')).toHaveTextContent('...');


推荐阅读