統合テストでは、接続されたアクション作成者が呼び出されることをテストします。実際にReduxのアクションクリエーターに接続されている小道具を模擬する方法は?
describe('SomeContainer',() => {
let subject, store, fancyActionCreator
beforeEach(() => {
store = createStore(combineReducers({ /* ... */ }))
fancyActionCreator = sinon.spy()
const props = {
fancyActionCreator
}
subject = (
<Provider store={store}>
<SomeContainer {...props} />
</Provider>
)
})
it('calls fancyActionCreator on mount',() => {
mount(subject)
expect(fancyActionCreator.callCount).to.equal(1)
})
}
アクションの作成者は、componentWillMount
の内側と呼ばれ、テスト環境を超えて期待通りに動作します。
問題は、元のアクション作成者がテストで呼び出され、適切に嘲笑されないということです。あなたが店であなたのコンポーネントを搭載し
connect(mapStateToProps, { fancyActionCreator })(SomeContainer)
私は自分の答えを更新しました。 – luboskrnac