Reactjs 使用next/head与jest和react测试库测试next.js标题,给出误报
我已经开始在我的最新项目中使用Next.js,我想为这些页面实现一些测试。 我已经创建了一个Reactjs 使用next/head与jest和react测试库测试next.js标题,给出误报,reactjs,jestjs,next.js,react-testing-library,testing-library,Reactjs,Jestjs,Next.js,React Testing Library,Testing Library,我已经开始在我的最新项目中使用Next.js,我想为这些页面实现一些测试。 我已经创建了一个\u文档文件,其中设置了我想要使用的所有元标记,包括页面的标题 <html> <InlineStylesHead /> <body> <Main /> <NextScript /> <Head> <title>testing title</title> </H
\u文档
文件,其中设置了我想要使用的所有元标记,包括页面的标题
<html>
<InlineStylesHead />
<body>
<Main />
<NextScript />
<Head>
<title>testing title</title>
</Head>
</body>
</html>
不幸的是,它给了我误报,而无论发生什么,expect
block都给了true。
我还尝试直接在页面上设置标题
,不幸的是,同样的问题
你有没有用过其他技术来测试这类东西?
谢谢
expect
没有给出true
,它只是在测试中被忽略waitFor
由于其性质是异步的,应该等待以影响测试结果
应该是:
it('should render the title', async () => {
...
await waitFor(() => {
expect(document.title).toEqual('test title');
});
});
问题来了,我要么得到了误报(只要尝试用任何其他名称替换“test title”,它会给你误报),要么它显示:
接收的值必须是HTMLElement或svgelElement。Received has type:string Received has value:“
您是否对等待等待等待等待
有误报?在OP中,它不是真的假阳性,断言只是发生在测试之外(如果测试运行足够长,它可能会显示未捕获的异常)。我不确定为什么接收的值必须是HTMLElement,或者svgelElement
可能发生在这里toEqual
不应导致此错误,除非对其进行了修改。请提供可以重现问题的。尝试创建一个repl.it测试;)
it('should render the title', async () => {
...
await waitFor(() => {
expect(document.title).toEqual('test title');
});
});