redux-saga / redux-saga-beginner-tutorial

Redux/Redux-saga beginner tutorial
MIT License
587 stars 544 forks source link

执行npm run test时报错:Error: call: argument fn is undefined or null #66

Open zl-fire opened 4 years ago

zl-fire commented 4 years ago

执行npm run test时报错:Error: call: argument fn is undefined or null

image

如下修改代码就正常了

image

import test from 'tape';

// import { delay } from 'redux-saga'
import { put, call , delay} from 'redux-saga/effects'
import { incrementAsync } from './sagas'

test('incrementAsync Saga test', (t) => {
  const generator = incrementAsync()

  t.deepEqual(
    generator.next().value,
    // call(delay, 1000),
    delay(1000),
    'counter Saga must call delay(1000)'
  )

  t.deepEqual(
    generator.next().value,
    put({type: 'INCREMENT'}),
    'counter Saga must dispatch an INCREMENT action'
  )

  t.deepEqual(
    generator.next(),
    { done: true, value: undefined },
    'counter Saga must be done'
  )

  t.end()
});
jagretz commented 4 years ago

You shouldn't need to import delay from redux-saga/effects. Instead, make sure you are adding the export keyword before the "delay" defined in the sagas.js file. eg

export const delay = (ms = 1000) => new Promise((res) => setTimeout(res, ms));