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();
});