首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试redux-saga

测试redux-saga
EN

Stack Overflow用户
提问于 2016-09-02 19:13:54
回答 1查看 976关注 0票数 1

我正在尝试为redux saga实现一个测试,如下所示,但我遇到了一个问题。我得到的错误是无法读取未定义的属性有效负载。由于某种原因,我传递给saga函数的'message‘变量没有定义,有人能告诉我为什么吗?谢谢

代码语言:javascript
复制
  saga.spec.js
    import test from 'tape'
    import { put,take,call } from 'redux-saga/effects'
    import { onCreateMessage } from '../src/common/sagas/messages'
    import { addMessage,createMessage } from '../src/common/reducers/messages'


    test('createMessage', assert => {
        const gen = onCreateMessage()



        var message = {
            id: 1234,
            channelID: "AA",
            text: "text",
            user: "user"
          }

        assert.deepEqual(
            gen.next(message).value,
            put(addMessage(message)),
            'createMessage should dispatch addMessage action'
        )

    })

saga/index.js
export default function* rootSaga(){

    yield [ 

        takeEvery('CREATE_MESSAGE', onCreateMessage),
        ......
        ]

当我通过控制台控制下面记录的消息时,我得到了'undefined‘

代码语言:javascript
复制
export function* onCreateMessage(message) {
    console.log(message)
    yield put(addMessage(message.payload))

    try {
        yield call(fetch,'/api/newmessage',
            {
             method: 'post',
             headers: {
                'Content-Type': 'application/json'
                },
             body: JSON.stringify(message.payload)}
            )

    } catch (error){
        throw error
    }
}

我正在使用来自redux-actions的actionCreator:

代码语言:javascript
复制
export const addMessage = createAction(ADD_MESSAGE);
EN

回答 1

Stack Overflow用户

发布于 2016-09-23 15:38:00

变化

const gen = onCreateMesaage()

const gen = onCreateMessage(message)

解释:

message是传递给生成器函数的参数,而不是yield结果。前面的代码适用于产生的结果。e.g

代码语言:javascript
复制
export function* onCreateMessage() {
    const message = yield 
    console.log(message)
    yield put(addMessage(message.payload))
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39291006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档