0

我已经为我的 sagas 编写了一些磁带测试,但最简单的示例由于同样的原因一直失败。我有一个单行传奇:

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()
});

但是,第一个断言失败并说该值未定义:

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

我已经确认我正在导入 saga,并且其他测试正在运行,为什么这个简单的测试会失败?

4

1 回答 1

1

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

比较产量*产量

于 2016-09-28T08:03:59.993 回答