【发布时间】:2017-04-25 02:43:52
【问题描述】:
我有一个容器组件,负责为子表单组件方法提供保存功能。我正在尝试使用 Jest & Enzyme(我认为我需要酶?)来测试子组件是否触发从父组件传递的函数。这两种方法看起来像这样:
class Parent extends Component {
handleSave = (someData) => (
/* do some ajax with someData */
)
render() {
return(
<ChildComponent {...this.props} handleSave={this.handleSave} />
)
}
}
class ChildComponent extends Component {
render() {
<form onSubmit={this.props.handleSave}>
<button type="submit">Submit</button>
</form>
}
}
还有测试:
import React from 'react'
import ParentContainer from '../src/ParentContainer'
describe('<ParentContainer />', () => {
it('Should fire handle save when PatientScheduler form saves', () => {
const component = mount( <ParentContainer />)
component.handleSave = jest.fn()
component.find('[type="submit"]').simulate('click')
expect(component.handleSave).toHaveBeenCalled()
})
})
我收到的失败消息是Expected mock function to have been called.
我觉得我已经完成了 90% 的工作。这里有什么问题?谢谢。
【问题讨论】:
标签: javascript reactjs testing jestjs enzyme