我正在尝试为使用fromJest
的组件编写单元测试。我需要模拟,所以我的测试不必等待动画完成。但是,除了“跳过”动画之外,我还需要在我的模拟组件上触发回调。React
Transition
react-transition-group
Transition
onExited
Transition
这是我Component.js
的使用方式Transition
:
...
return (
<Transition
timeout={1500}
in={this.state.show}
onExited={handleExited}>
{status =>
<button onClick={this.setState({show: false}) className={`component-${status}`}>button</button>
}
</Transition>
)
这是我的Component.test.js
:
import React from 'react'
import {render, fireEvent} from 'react-testing-library'
import Component from '../Component'
test('check', () => {
const handleCompletion = jest.fn()
const {getByText} = render(
<Component
onButtonClick={handleCompletion}
/>
)
const button = getByText('button')
fireEvent.click(button)
expect(handleCompletion).toHaveBeenCalledTimes(1)
})
这个想法是,一旦button
单击 a,组件就会动画,然后在完成时触发回调。
如何Transition
正确模拟,使其跳过动画但仍触发onExited
回调?