2016-08-25 15 views
2

私はredux-sagaを使用し、expectを使用してテストしています。 (驚くべき)React Boilerplateに示されている例に基づいて、セレクタを使用してストアから必要なデータを取得するサガをテストすることは問題ありません。私は佐賀を輸入し、それを呼び出しています、これをテストするためにディスパッチされたアクションのデータを使用するサガをテストする方法

export function* startSaga() { 
    while (true) { 
    const startAction = yield take(START); 
    const id = startAction.id || false; 
    ... 

import { startSaga } from '../sagas.js'; 
startGenerator = startSaga(); 
... 

このため

しかし、私のサガのいくつかは、データに依存しているが派遣アクションに含まサガを蹴飛ばすような行動はないので、idの値は常にfalseになります。

私のアクションとレデューサーは別々にテストされます:このようなスタンドアロンの方法でサガをテストする場合、これを動作させる簡単な方法はありますか?

答えて

3

サガ・ジェネレータの機能を実行している場合、あなたはすべてのyieldに戻って渡されるデータの制御にあります。

import { startSaga } from '../sagas.js'; 
let startGenerator = startSaga(); 

let takeEffect = startGenerator.next() 
expect(takeEffect).toEqual(take(START)); 
startGenerator.next({id: 234}); 
+0

簡単だった:)ありがとうございます。 – CherryFlavourPez

関連する問題