Я пытаюсь запустить тест, но я не уверен, как вызвать установленное состояние с правильными свойствами.Я уже установил реквизит, beforeEach, но не уверен, что это правильный путь.Любая помощь или подсказка будут чрезвычайно полезны.Спасибо Это то, что у меня есть для тестирования на данный момент:
const baseProps = {
defaultData:{
url:{},
method:{},
name:{},
},
addMetaInformation,
}
// Описать и также, прежде чем каждый из них был объявлен
it ('componentWillReceiveProps',() => {
const url = baseProps
wrapper.instance().setState({
nextProps: {
url: 'null',
method : 'test',
name : 'test name',
},
})
wrapper.instance().componentWillReceiveProps(url)
//expect(wrapper.setState()).toContain(url); // not sure about this one
expect(wrapper.instance().setState).toHaveProperty() // mistake
expect(wrapper).toMatchSnapshot();
});
Вот код, который я пытаюсь проверить:
constructor(props) {
super(props)
this.state = {
url: null
}
}
componentWillReceiveProps(nextProps) {
if (nextProps.url) {
this.setState({
url: nextProps.url
})
}
if (nextProps.defaultData) {
if (nextProps.defaultData !== this.props.defaultData) {
this.setState({
url: nextProps.defaultData.url,
method: nextProps.defaultData.method,
name: nextProps.defaultData.name
})
}
}
}
handleChange = (e) => {
let localState = Object.assign({}, this.state)
localState[e.target.name] = e.target.value
this.setState(localState)
this.props.addMetaInformation(localState)
}