在使用Jest和Enzyme编写的测试用例中,道具不会传递到组件内部
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在使用Jest和Enzyme编写的测试用例中,道具不会传递到组件内部相关的知识,希望对你有一定的参考价值。
这是我的测试用例
import React from 'react';
import mount from 'enzyme';
import CustomForm from '../index';
describe('Custom Form mount testing', () =>
let props;
let mountedCustomForm;
beforeEach(() =>
props =
nav_module_id: 'null',
;
mountedCustomForm = undefined;
);
const customform = () =>
if (!mountedCustomForm)
mountedCustomForm = mount(
<CustomForm ...props />
);
return mountedCustomForm;
;
it('always renders a div', () =>
const divs = customform().find('div');
console.log(divs);
);
);
每当我使用yarn test
运行测试用例时。它给出了以下错误TypeError: Cannot read property 'nav_module_id' of undefined
。
我已经在多个地方放置了控制台,以便查看道具的价值。它正在设定。但它不能只是通过组件并给出上面提到的错误。
任何帮助将被欣赏已经卡住了近2-3天。
答案
您必须在beforeEach方法中包装要测试的组件,以使其可用于所有“it”块,并且您还必须使用您认为正在进入原始组件的模拟道具。
import React from 'react'
import expect from 'chai'
import shallow from 'enzyme'
import sinon from 'sinon'
import Map from 'immutable'
import ClusterToggle from '../../../src/MapView/components/ClusterToggle'
describe('component tests for ClusterToggle', () =>
let dummydata
let wrapper
let props
beforeEach(() =>
dummydata =
showClusters: true,
toggleClustering: () =>
wrapper = shallow(<ClusterToggle ...dummydata />)
props = wrapper.props()
)
describe(`ClusterToggle component tests`, () =>
it(`1. makes sure that component exists`, () =>
expect(wrapper).to.exist
)
it('2. makes sure that cluster toggle comp has input and label', () =>
expect(wrapper.find('input').length).to.eql(1)
expect(wrapper.find('label').length).to.eql(1)
)
it('3. simulating onChange for the input element', () =>
const spy = sinon.spy()
const hct = sinon.spy()
hct(wrapper.props(), 'toggleClustering')
spy(wrapper.instance(), 'handleClusterToggle')
wrapper.find('input').simulate('change')
expect(spy.calledOnce).to.eql(true)
expect(hct.calledOnce).to.eql(true)
)
)
)
以上是关于在使用Jest和Enzyme编写的测试用例中,道具不会传递到组件内部的主要内容,如果未能解决你的问题,请参考以下文章
React / Enzyme:运行 Jest / Enzyme 测试时出现 Invariant Violation 错误
如何为 createSlice() 的 extraReducers 编写测试(Jest + Enzyme)?