ジェストテスト:「state.getは関数ではありません」

Alv Huang Jiangxiong

カウンターレデューサーをjestでテストしようとしていますがTypeError: state.get is not a function、ディスパッチすると取得INCREMENTます。これが私のコードです...

// module.js
import { fromJS } from 'immutable';
...

const initialState = fromJS({
  value: 0,
});

export default function reducer(state = initialState, action) {
  switch (action.type) {
    case INCREMENT:
      return state.set('value', state.get('value') + 1);
    case DECREMENT:
      return state.set('value', state.get('value') - 1);
    case INCREMENT_IF_ODD:
      return (state % 2 !== 0) ? state.set('value', state.get('value') + 1) : state;
    default:
      return state;
  }
}

// module.test.js
import { fromJS } from 'immutable';

import reducer, { types } from './module';

const { INCREMENT, DECREMENT, INCREMENT_IF_ODD } = types;

describe('Counter reducer', () => {
  it('should return the initial state', () => {
    expect(reducer(undefined, {})).toEqual(fromJS({
      value: 0,
    }));
  });

  it(`should handle ${INCREMENT}`, () => {
    expect(reducer(0, { type: INCREMENT })).toEqual(fromJS({
      value: 1,
    }));
  });

  ...
});

ブラウザで正常に動作しているため、コードの問題点がわかりません。

ここにエラーがあります

 FAIL  src/containers/Counter/module.test.js
  ● Counter reducer › should handle Counter/INCREMENT

    TypeError: state.get is not a function

      at reducer (src/containers/Counter/module.js:34:50)
      at Object.<anonymous> (src/containers/Counter/module.test.js:25:33)
          at new Promise (<anonymous>)
          at <anonymous>
PiotrBiałek

エラーは、reducerに渡されたストアが0であるため、reducer関数内で実行しようとするためです0.get(..)レデューサーに渡される最初の引数は、最初のストアである必要があります。

it(`should handle ${INCREMENT}`, () => {
  const initialState = fromJS({
    value: 0,
  });

  expect(reducer(initialState, { type: INCREMENT })).toEqual(fromJS({
    value: 1,
  }));
});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Object(...)はVuexストアの関数ではありません

分類Dev

$ rtoi()は定数システム関数ではありません

分類Dev

$ rtoi()は定数システム関数ではありません

分類Dev

Reactテスト-TypeError:localStorage.getItemは関数ではありません

分類Dev

jest / enzymeテスト:this.props.showOverlayは関数ではありません

分類Dev

Aurelia。テスト。TypeError:config.addPipelineStepは関数ではありません

分類Dev

'functionInBackboneView'は関数ではありません-Jqueryのコンテキスト

分類Dev

酵素テスト:TypeError:expect(...)。findは関数ではありません

分類Dev

TypeErrorをスローするジェスト:this.inputEl.focusは関数ではありません#1964

分類Dev

Angular 8getRoleはネストされたオブジェクトの関数ではありません

分類Dev

マングースオブジェクトメソッドは関数ではありません

分類Dev

Angularjsリソースオブジェクトa.pushは関数ではありません

分類Dev

マングースとノードjs-TypeError:オブジェクトは関数ではありません

分類Dev

Angularダイジェスト-TypeError:v12は関数ではありません

分類Dev

ジャスミンテストは関数getCurrentNavigation()を認識していません:this.router.getCurrentNavigationは関数ではありません

分類Dev

JavaScriptオブジェクト: 'addEventListenerは関数ではありません'

分類Dev

.findはcheerioオブジェクトの関数ではありません

分類Dev

this.eachはjqmウィジェットの関数ではありません

分類Dev

setはfirebaseRefオブジェクトの関数ではありません

分類Dev

Uncaught TypeError:オブジェクト(...)は関数ではありません

分類Dev

Javascript:エラー、オブジェクトは関数ではありません

分類Dev

FileReader:オブジェクトは関数ではありません

分類Dev

「TypeError:オブジェクトは関数ではありません」

分類Dev

Node.js:オブジェクトは関数ではありません

分類Dev

マングース:.find()は関数ではありません

分類Dev

マングース:.findByIdは関数ではありません

分類Dev

マングースfindOne()は関数ではありません

分類Dev

マングース.save()は関数ではありません

分類Dev

マングースfindOneは関数ではありません

Related 関連記事

  1. 1

    Object(...)はVuexストアの関数ではありません

  2. 2

    $ rtoi()は定数システム関数ではありません

  3. 3

    $ rtoi()は定数システム関数ではありません

  4. 4

    Reactテスト-TypeError:localStorage.getItemは関数ではありません

  5. 5

    jest / enzymeテスト:this.props.showOverlayは関数ではありません

  6. 6

    Aurelia。テスト。TypeError:config.addPipelineStepは関数ではありません

  7. 7

    'functionInBackboneView'は関数ではありません-Jqueryのコンテキスト

  8. 8

    酵素テスト:TypeError:expect(...)。findは関数ではありません

  9. 9

    TypeErrorをスローするジェスト:this.inputEl.focusは関数ではありません#1964

  10. 10

    Angular 8getRoleはネストされたオブジェクトの関数ではありません

  11. 11

    マングースオブジェクトメソッドは関数ではありません

  12. 12

    Angularjsリソースオブジェクトa.pushは関数ではありません

  13. 13

    マングースとノードjs-TypeError:オブジェクトは関数ではありません

  14. 14

    Angularダイジェスト-TypeError:v12は関数ではありません

  15. 15

    ジャスミンテストは関数getCurrentNavigation()を認識していません:this.router.getCurrentNavigationは関数ではありません

  16. 16

    JavaScriptオブジェクト: 'addEventListenerは関数ではありません'

  17. 17

    .findはcheerioオブジェクトの関数ではありません

  18. 18

    this.eachはjqmウィジェットの関数ではありません

  19. 19

    setはfirebaseRefオブジェクトの関数ではありません

  20. 20

    Uncaught TypeError:オブジェクト(...)は関数ではありません

  21. 21

    Javascript:エラー、オブジェクトは関数ではありません

  22. 22

    FileReader:オブジェクトは関数ではありません

  23. 23

    「TypeError:オブジェクトは関数ではありません」

  24. 24

    Node.js:オブジェクトは関数ではありません

  25. 25

    マングース:.find()は関数ではありません

  26. 26

    マングース:.findByIdは関数ではありません

  27. 27

    マングースfindOne()は関数ではありません

  28. 28

    マングース.save()は関数ではありません

  29. 29

    マングースfindOneは関数ではありません

ホットタグ

アーカイブ