2016-09-28 16 views
0

我已经写了一些磁带测试我的传奇,但最简单的例子始终因相同的原因失败。我有一个行之城:简单的磁带js测试的REDX传奇失败与未定义

export function* clearUser(){ 
    yield* put({type: 'CLEAR_USER'}); 
} 

我带试验也同样简单:

test('clear user saga', (assert)=> { 
    const gen = clearUser(); 
    assert.deepEqual(
     gen.next().value, 
     put({type: 'CLEAR_USER'}), 
     'clear user should pass to reducer to remove user from state' 
    ) 

    assert.deepEqual(
     gen.next(), 
     { done: true, value: undefined }, 
     'clear user saga should complete' 
    ) 

    assert.end() 
}); 

然而,第一个断言失败,并表示值为undefined:

operator: deepEqual 
    expected: |- 
    { '@@redux-saga/IO': true, PUT: { action: { type: 'CLEAR_USER' }, channel: null } } 
    actual: |- 
    undefined 

我已经确认我正在导入传奇,而其他测试正在运行,为什么这个简单的测试失败?

回答

1

您需要yield您的put作用,而不是委托给另一个生成器。

比较yield* vs yield