2017-12-02 6 views
1

私は今ReactJSを初めて勉強しています。facebookincubator/create-react-appでテストを書く

https://egghead.io/lessons/react-redux-writing-a-counter-reducer-with-tests

ボイラープレートから:facebookinculator/create-react-app
使用して、テスト:npm test

を私は精通したいので、私は練習を行うには無地のオンラインウェブサイトを使用しないことを決めた主な理由はあります私のできる限りの真のツール。 ここに私のコードです。

export const counter = (state = 0, action) => { 
    switch (action.type) { 
    case 'INCREMENT': 
     return state + 1; 
    case 'DECREMENT': 
     return state - 1; 
    default: 
     return state; 
    } 
} 

そして、私のutils.test.js

import React from 'react'; 
import counter from '../utils/utils'; 

it('expect 1 to be return from reducer',() => { 
    expect(counter(0, {type: 'INCREMENT'})).toEqual(1) 
}); 

エラー

FAIL src/utils/utils.test.js 
    ● expect 1 to be return from reducer 

    TypeError: (0 , _utils2.default) is not a function 

     at Object.<anonymous>.it (src/utils/utils.test.js:5:30) 
      at new Promise (<anonymous>) 
     at Promise.resolve.then.el (node_modules/p-map/index.js:46:16) 
      at <anonymous> 
     at process._tickCallback (internal/process/next_tick.js:188:7) 

PASS src/App.test.js 

Test Suites: 1 failed, 1 passed, 2 total 
Tests:  1 failed, 1 passed, 2 total 
Snapshots: 0 total 
Time:  0.062s, estimated 1s 
Ran all test suites. 

Watch Usage: Press w to show more. 

質問:
私は間違っていますか? 私はすでにdocsで確認しています。 また、構成が正しいことを確認するためにexpect(1).toEqual(1)を試しました。

参考文献:
https://facebook.github.io/jest/docs/en/expect.html#toequalvalue

答えて

1

あなたcounterデフォルトのインポートとは対照的に、という名前のインポートであるように見えます。

counterをインポートするためにこれを使用してみてください:

import { counter } from '../utils/utils'; 

あなたはutilsモジュールのデフォルトとしてごcounterをエクスポートした場合、現在のみ使用している構文は動作します。

+1

3分ほどお待ちください。あなたの早急な対応に感謝します。 – Sarit

関連する問題