2016-03-24 5 views
4

ES6のインポート/エクスポートの構文を使用すると、Jestはコンポーネントのmockingを明示的にオフにしても、デフォルトでインポートするコンポーネントをautoMockingしているようです。Jest React testing es6インポート/エクスポート不要なモッ​​ク

jest.autoMockOff(); 
jest.dontMock("../bundles/Opportunities/MarkAsLost.jsx"); 

このテストコンポーネントの上部にインポートされ:

import MarkAsLost from "../bundles/Opportunities/MarkAsLost.jsx"; 

これは、試験されているコンポーネントの下に輸出である:

export default MarkAsLost; 

これは結果でありますインポートされたコンポーネントをテストファイルに記録する:

{ [Function] 
    _isMockFunction: true, 
    _getMockImplementation: [Function], 
    mock: { calls: [ [Object] ], instances: [ [Object] ] }, 
    mockClear: [Function], 
    mockReturnValueOnce: [Function], 
    mockReturnValue: [Function], 
    mockImpl: [Function], 
    mockImplementation: [Function], 
    mockReturnThis: [Function], 
    displayName: 'MarkAsLost' } 

私は古いスタイルの構文すなわち使用する場合:テストファイル内

var MarkAsLost = require("../bundles/Opportunities/MarkAsLost.jsx"); 
module.exports = MarkAsLost; 

を、これは私がしたいようになりまし振る舞うコンポーネントをlogginの結果である

{ [Function] displayName: 'MarkAsLost' } 

すべてのヘルプは

をいただければ幸いです
+0

オプションの場合は、[酵素](http://airbnb.io/enzyme/)をチェックすることをおすすめします。より多くの幸せなユニットテストの経験があるかもしれません。 :) – ffxsam

+0

酵素は素晴らしいです。しかし、@ffxsamあなたのコメントは文脈から外れています。 – everlasto

+0

確かに。だから、私はちょうど答えではなく、それをコメントにしたのです。 – ffxsam

答えて

0

同じ問題が発生しましたが、jest.*のメソッドがまったく動作しませんでした。他方、package.json内の "unmocking"機能をJest's configurationに移動すると正しく動作しました。

{ 
    "jest": { 
    "unmockedModulePathPatterns": [ 
     ".*" 
    ] 
    } 
} 
関連する問題