2016-01-18 56 views
0

运行的玩笑,却得到了错误,不知道该怎么办才好。无法获取模拟元

MenuSpec.js

//MenuSpec.js 
var Menu = require('../../src/menu.js'); 
jest.dontMock("menu"); 

describe("Menu", function() { 


    beforeEach(function() { 
     menu = new Menu(); 
    }); 
}); 

获得特别

Error: Failed to get mock metadata: /Users/anthonydreessen/Documents/workspace-sts-3.7.2.RELEASE/parrit/node_modules/react/lib/canDefineProperty.js 
    at Loader._generateMock (/Users/anthonydreessen/Documents/workspace-sts-3.7.2.RELEASE/parrit/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:251:15) 

项目结构此错误

/js 
    /__tests__ 
    /menu 
     MenuSpec.js 
    /src 
    menu.js 

回答

0

玩笑试图嘲笑反应,它不应该。

使用配置参数unmockedModulePathPatterns告诉玩笑unmock阵营

其次,你必须unmock一个模块需要它前:

jest.dontMock("../../src/menu"); 
var Menu = require('../../src/menu'); 
1

在你的package.json,添加到您的笑话配置。

"jest": { 
    "unmockedModulePathPatterns": [ 
    "<rootDir>/node_modules/react" 
    ] 
} 

取决于你所使用的其他模块,你可能需要包括它们。

"jest": { 
    "unmockedModulePathPatterns": [ 
    "<rootDir>/node_modules/react", 
    "<rootDir>/node_modules/react-dom", 
    "<rootDir>/node_modules/react-addons-test-utils", 
    "<rootDir>/node_modules/fbjs" 
    ] 
} 
+0

我只有使用模块名称。也许这是最近的一个变化? “开玩笑”:{ “unmockedModulePathPatterns”:[ “反应” ] } – wes