页面标题不适用于测试反应应用程序的jest / enzyme,如何获得标题?

时间:2018-01-04 14:28:44

标签: html reactjs enzyme jest create-react-app

我使用create-react-app创建了一个react应用程序,它已经生成了一个反应应用程序的准系统,它非常好!我现在想要更改页面的标题(在index.html中),然后测试它。我正在使用酶来测试单个组件,这也很好,但它只提供了从组件生成的html。如何测试页面/ dom,特别是页面标题?

it('renders App', () => {
  const wrapper = mount(<App />);
  const title = 'test'
  console.log(global.window.document.title)
  expect(wrapper.contains(title)).toEqual(true);
});

global.window.document.title为空

1 个答案:

答案 0 :(得分:1)

  1. 您可以在render()componentDidMount()中的component / App.js内部将标题设置为

    document.title = 'titlename'
    

    然后在expect(global.window.document.title).toBe('titlename')处检查标题。为我工作!

  2. 尝试使用react-helmet。然后使用

    检查
    wrapper.find(Helmet).prop("title")).toEqual('titlename');