2017-04-20 41 views
1

如何測試選擇效果?我的傳奇取決於選擇的結果,但每次我只是從傳奇中獲得undefinedRedux傳奇測試選擇效果

這裏是我的嘗試:

在我的傳奇:

function* loadData() { 
    const foo = yield select((state) => { 
     return state.foo.value; 
    }); 

    console.log('foo is :', foo); 
} 
測試

test.only('Data saga', t => { 

    const generator = loadData(); 
    console.log(generator.next({foo: 'blah'}).value); 
    console.log(generator.next()); 

}); 

但結果是foo is : undefined。我如何將數據傳遞到默認狀態?有沒有更好的方法來做到這一點?

+0

它不應該像'常量發電機= ...; generator.next();/* < - 這是選擇效果描述符*/generator.next('bar');/* < - 這是你解釋器runnig選擇效果* /'? –

+0

這是正確的!您能否將此作爲答案發布?謝謝 – Adam

回答

1

試試這個辦法

test.only('Data saga', t => { 

    const iterator = loadData(); 

    const selectFooValue = iterator.next(); // <-- this is effect descriptor 

    // here you assert about selectFooValue 

    const nextStep = iterator.next('bar'); // <-- this how you "running" select effect 

    // here you assert about nextStep 

});