reactjs - 使用带有 jest 和 react-testing-library 的 next/head 测试 next.js 标题,给出误报
问题描述
我已经开始在我的最新项目中使用 Next.js,我想对页面进行一些测试。我创建了一个_document
文件,在其中设置了我想要使用的所有元标记,包括页面的标题。
<html>
<InlineStylesHead />
<body>
<Main />
<NextScript />
<Head>
<title>testing title</title>
</Head>
</body>
</html>
然后我设置我的测试来呈现这个页面(它应该包括这个_document
作为它的一部分)
它按预期工作(包括 SSR)。
所以我尝试使用react-testing-library
和jest
这是我的测试:
it('should render the title', () => {
render(<Page />);
waitFor(() => {
expect(document.title).toEqual('test title');
});
});
不幸的是,它给了我误报,而expect
无论如何,block 都是真的。我也试过Head
直接在页面上设置,不幸的是,同样的问题。
你有没有使用任何其他技术来测试这种东西?谢谢!
解决方案
expect
不给true
,它只是在测试中被忽略。waitFor
由于其性质是异步的,应该等待以影响测试结果。
它应该是:
it('should render the title', async () => {
...
await waitFor(() => {
expect(document.title).toEqual('test title');
});
});
推荐阅读
- c# - 如何在运行时在 ASP.NET Core Web 应用程序项目中创建位图
- django - 在没有模型的情况下使用权限
- python - 如何使用 f(var, param1, param2, ...) 正确使用多处理
- matlab - 如何在 MATLAB 中使用 cumsum 获得累积和?
- python - 使用 Python 3 通过 way2sms 发送短信
- algorithm - 如何使用最近邻随机点细分空间?
- c# - 列表声明中带/不带括号的区别
- python - apscheduler python脚本每隔几个小时就会停止一次
- android - 验证错误:拒绝类序列化程序
- node.js - nodejs - 从另一个主机下载文件并将该文件同时流式传输到另一个客户端