首次测试运行时未创建快照

时间:2019-03-21 00:16:21

标签: reactjs intellij-idea jestjs

过去一周,我一直在尝试使用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)

我意识到这可能是配置问题,而不是代码问题。我一直在研究所有我能想到的东西,但没有找到任何必要的帮助。欢迎提出所有建议。

1 个答案:

答案 0 :(得分:0)

NavLinkreact-router-dom的组成部分。

它设计用于包装Router内。

NavLink组件被设计为如果在Router之外呈现,则会引发错误,这就是您尝试自行呈现时看到的错误。

由于NavLink在渲染时抛出错误,因此测试失败并显示以下错误:

expect(tree).toMatchSnapshot();

...永远不会到达,因此永远不会创建快照。