运行jest并收到错误,不知道如何处理它。
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 :(得分:1)
在你的package.json中,将其添加到你的jest配置中。
"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"
]
}
答案 1 :(得分:0)
Jest试图模仿React,它不应该。
使用config参数unmockedModulePathPatterns告诉Jest unmock React
其次,您必须在之前取消模拟模块:
jest.dontMock( "../../src/menu" );
var Menu = require('../../src/menu');