我正在尝试使用jest
实现快照
,但我遇到了问题。解决方案可能很简单,但我找不到。
LoginForm.js
class LoginForm extends React.Component {
constructor(props) {
super(props)
}
}
componentWillMount(){
this.props.startSpinner()
}
render(){
return(....)
}
}
LoginForm.spec.js
it('should render snapshot', () => {
const component = renderer.create(
<LoginForm />
)
const tree = component.toJSON()
expect(tree).toMatchSnapshot()
})
startSpinner Action
export function startSpinner() {
return (dispatch) => {
dispatch({
type: 'WINDOW_START_SPINNER',
})
}
}
当我运行测试时,它抛出这个错误,不仅是这个 Action ,而且所有函数都被称为 redux
Action 。
TypeError: this.props.startSpinner is not a function
我怎样才能让 jest
与这个 redux
Action 配合得很好?
最佳答案
我会单独测试 redux 功能,并将 startSpinner 作为模拟函数传入。
例如:
const mockFn = jest.fn()
const component = renderer.create(
<LoginForm startSpinner={mockFn} />
)
expect(mockFn.toHaveBeenCalled()).toBe(true)
关于javascript - 开 Jest 玩 Redux Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46602213/