5

我已经开始在我的最新项目中使用 Next.js,我想对页面进行一些测试。我创建了一个_document文件,在其中设置了我想要使用的所有元标记,包括页面的标题。

<html>
<InlineStylesHead />

<body>
    <Main />
    <NextScript />

    <Head>
     <title>testing title</title>
    </Head>
</body>

</html>

然后我设置我的测试来呈现这个页面(它应该包括这个_document作为它的一部分)

它按预期工作(包括 SSR)。

所以我尝试使用react-testing-libraryjest

这是我的测试:

it('should render the title', () => {
      render(<Page />);
      waitFor(() => {
          expect(document.title).toEqual('test title');
      });
});

不幸的是,它给了我误报,而expect无论如何,block 都是真的。我也试过Head直接在页面上设置,不幸的是,同样的问题。

你有没有使用任何其他技术来测试这种东西?谢谢!

4

1 回答 1

1

expect不给true,它只是在测试中被忽略。waitFor由于其性质是异步的,应该等待以影响测试结果。

它应该是:

it('should render the title', async () => {
      ...
      await waitFor(() => {
          expect(document.title).toEqual('test title');
      });
});
于 2020-06-09T09:43:00.303 回答