过去一周,我一直在尝试使用Jest编写一些测试。我对基本的断言没有任何麻烦,但是当我尝试做一些快照时,我遇到了麻烦。据我了解,第一次运行测试时,将创建一个快照,然后,它将使用该快照与新快照进行比较。但是,当我运行测试时,它失败了,并且没有创建快照。我尝试了几件事,但这是一个代码段...
import React from 'react';
import UserOptions from './UserOptions';
import {Provider} from "react-redux";
import {store} from "../../redux/configureStore";
import {NavLink} from "react-router-dom";
import renderer from "react-test-renderer";
describe('the user options component', ()=>{
it('should match snap shot', ()=>{
const tree = renderer
.create(<NavLink to="#"/>)
.toJSON();
expect(tree).toMatchSnapshot();
}); // this fails
});
我也收到此错误,但是我不知道该怎么处理...
console.error node_modules / react-test-renderer / cjs / react-test-renderer.development.js:9194 上面的错误发生在组件中: 在途中(由NavLink创建) 在NavLink中(位于UserOptions.test.js:43)
我意识到这可能是配置问题,而不是代码问题。我一直在研究所有我能想到的东西,但没有找到任何必要的帮助。欢迎提出所有建议。
答案 0 :(得分:0)
NavLink
是react-router-dom
的组成部分。
它设计用于包装Router
内。
NavLink
组件被设计为如果在Router
之外呈现,则会引发错误,这就是您尝试自行呈现时看到的错误。
由于NavLink
在渲染时抛出错误,因此测试失败并显示以下错误:
expect(tree).toMatchSnapshot();
...永远不会到达,因此永远不会创建快照。