我开玩笑地使用 toHaveBeenCalled() 时遇到错误?
I am getting error on using toHaveBeenCalled() in jest?
我在使用 toHaveBeenCalled 时遇到错误,请纠正我哪里出错了
代码:
jsx
<item
onClick={ load ? undefined : onClick}
>
测试
test('render', () => {
const MockItems = jest.fn()
const prop = {
onClick: MockItems,
}
const onclickProp= output.find(item).props().onClick
onclickProp(undefined)
expect(props.onClick).toHaveBeenCalled()//error
}
错误
expect(props.onClick).toHaveBeenCalled()
Warning: An update to null inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
如果该项目作为子组件位于任何其他组件内,您需要在包装器组件上执行 dive()。浅渲染仅允许您访问 outer/parent 组件布局。
describe('item parent Component', () => {
let wrapper,instance
beforeEach(() => {
mockProps = {
handleClick: jest.fn()
}
const component = (<parent {...mockProps} />)
wrapper = shallow(component).dive()
})
it('item is clicked', () => {
wrapper.find(item).simulate('click')
expect(handleClick).toHaveBeenCalled()
})
)}
<item onClick={ load ? undefined : onClick} >
我在使用 toHaveBeenCalled 时遇到错误,请纠正我哪里出错了
代码:
jsx
<item
onClick={ load ? undefined : onClick}
>
测试
test('render', () => {
const MockItems = jest.fn()
const prop = {
onClick: MockItems,
}
const onclickProp= output.find(item).props().onClick
onclickProp(undefined)
expect(props.onClick).toHaveBeenCalled()//error
}
错误
expect(props.onClick).toHaveBeenCalled()
Warning: An update to null inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
如果该项目作为子组件位于任何其他组件内,您需要在包装器组件上执行 dive()。浅渲染仅允许您访问 outer/parent 组件布局。
describe('item parent Component', () => {
let wrapper,instance
beforeEach(() => {
mockProps = {
handleClick: jest.fn()
}
const component = (<parent {...mockProps} />)
wrapper = shallow(component).dive()
})
it('item is clicked', () => {
wrapper.find(item).simulate('click')
expect(handleClick).toHaveBeenCalled()
})
)}
<item onClick={ load ? undefined : onClick} >