2016-05-02 15 views
7

Jestテストを実行できず、非常に曖昧なエラーメッセージが表示されます。 StackOverflowで同様の問題が見つかりました.jestSupportをnode_moduleのreactフォルダに追加するという提案で解決できませんでした。実行時エラーJest実行中:反応中

問題は、参照: How to use Jest with React Native

__tests__/profile-test.js 
● Runtime Error 
TypeError: Cannot read property 'DEFINE_MANY' of undefined 

//スニペット

"scripts": { 
    "test": "jest" 
    }, 
    "jest": { 
    "scriptPreprocessor": "<rootDir>/node_modules/babel-jest" 
    }, 

//テスト

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import TestUtils from 'react-addons-test-utils'; 
import Profile from '../components/profile'; 
jest.setMock('react', {}); // put this in after reading a troubleshooting article 

//jest.autoMockOff(Profile); 


     describe('Profile'),() => { 

     it("renders a form containing user information", function() { 
      let Profile = TestUtils.renderIntoDocument(<Profile/>); 
      let renderedDOM =() => React.findDOMNode(Profile); 

      expect(renderedDOM.tagName).toBe('div'); 
      expect(renderedDOM.classList).toEqual(['value', 'image', 'btn btn-primary', 'btn btn-danger' ]); 

      var children = renderedDOM.querySelectorAll('fieldConfig.type'); //created a custom 
      expect(children.length).toBe(3); 
      expect(children[0]).toEqual({name: 'test mc nameyname', email: '[email protected]'}); 
      }); 
     }; 

は誰もが前に、この問題に実行されたファイル、& package.JSONから提案がありますか?

+0

解決策を見つけましたか? – inquisitive

+0

すみませんでした。私は、同僚と話をした後のエラーメッセージを明確にするために、Mocha、Chai、Enzymeに明確にピボットすることに決めました。 –

答えて

2

あなたが知る限り、すべてのモジュールの模擬バージョンが必要です。

は、ファイルの先頭に

jest.dontMock('react') 
jest.dontMock('react-dom') 
jest.dontMock('react-addons-test-utils') 
jest.dontMock('../components/profile') 

を入れてみてください。

私も取り除くでしょう:

​​

限り、私はそれが動作するはず伝えることができ、そのすべてを試してみて。 「スクリプト」は私のために働いたのと同じレベルで私のpackage.jsonでこれを置く

9

"jest": { 
    "unmockedModulePathPatterns": [ 
    "react" 
    ] 
} 

を私は私のテストファイルの先頭に任意のjest.dontMock文を持っていませんでした。私はjest.unmockをテスト対象のモジュールに使用しました。

+0

これは私にとっても問題を解決しましたが、理由は何も分かりません。 –