2017-04-20 15 views
1

선택 효과를 테스트하려면 어떻게합니까? 나의 무용담은 선택의 결과에 달려 있지만 매번 나는 무용담에서 undefined을 얻고 있습니다.Redux Saga 테스트 선택 효과

을 내 사가에 : 여기

내가 뭘하려 테스트에서

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

그것이 const를 발생'처럼 안이 방법을 시도 = ...; generator.next();/* <- 이것은 선택 효과 설명자입니다. */generator.next ('bar');/* <- 이것은 해석자 runnig select effect * /'입니까? –

+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 

});