Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs react快照测试中的模拟状态?_Reactjs_Unit Testing_Snapshot_React Testing Library - Fatal编程技术网

Reactjs react快照测试中的模拟状态?

Reactjs react快照测试中的模拟状态?,reactjs,unit-testing,snapshot,react-testing-library,Reactjs,Unit Testing,Snapshot,React Testing Library,希尔 我想完成下面的快照测试,但我不知道如何通过页面呈现所需的状态 test('test renders as per snapshot', () => { const state = { orderNumber: 1000000001, userID: 1234567, } const tree = renderer .create(<Order locati

希尔

我想完成下面的快照测试,但我不知道如何通过页面呈现所需的状态

test('test renders as per snapshot', () => {
        const state = {
            orderNumber: 1000000001,
            userID: 1234567,
          }
        const tree = renderer
            .create(<Order location={ state }></Order>)
            .toJSON();
        expect(tree).toMatchSnapshot();
    });

有人能告诉我如何将其传递到快照测试,使其不会失败吗?

您应该将组件作为
传递(注意附加的花括号),因为它等于


在您的帖子中,表示将
state
作为变量作为'props'传递,而
this.props.location.state
将是未定义的,从而导致您的错误。

您的state对象中缺少一个state,我认为重命名为'location'更有意义:

test('test renders as per snapshot', () => {
        const location = {
            state: {
              orderNumber: 1000000001,
              userID: 1234567,
            }
          }
        const tree = renderer
            .create(<Order location={ location }></Order>)
            .toJSON();
        expect(tree).toMatchSnapshot();
    });
test('test根据快照呈现',()=>{
常数位置={
声明:{
订单号:100000001,
用户ID:1234567,
}
}
常量树=渲染器
.create()
.toJSON();
expect(tree.toMatchSnapshot();
});

啊,很简单,但我花了很长时间寻找它,非常感谢这解决了我的问题。我想将值的状态设置为null。下面是我尝试过的方法,但是状态值没有得到更新。你能帮忙吗<代码>test.only(“呈现组件”,()=>{const state={storeTabSelected:null};const组件=();呈现(组件);})
test('test renders as per snapshot', () => {
        const location = {
            state: {
              orderNumber: 1000000001,
              userID: 1234567,
            }
          }
        const tree = renderer
            .create(<Order location={ location }></Order>)
            .toJSON();
        expect(tree).toMatchSnapshot();
    });