我正在学习反应,我想测试我的一个组件,但我遇到了这个错误:
{import React from 'react';
^^^^^^
SyntaxError: Unexpected token import
Run Code Online (Sandbox Code Playgroud)
以下是我在阅读stackoverflow和github上的文章时尝试过的一些内容
添加了测试预设和这些插件"transform-es2015-modules-commonjs",dynamic-import-node"到我的babel配置
{
"presets": ["es2015", "react"],
"env": {
"test": {
"presets":[
["es2015", { "modules": false }],
"stage-0",
"react"],
"plugins": [
"transform-es2015-modules-commonjs",
"dynamic-import-node"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的package.json中,Jest属性具有以下设置:
"jest": {
"verbose": true,
"moduleFileExtensions": [
"ts",
"tsx",
"jsx",
"js"
],
"transform": {},
"moduleDirectories": [
"node_modules"
],
"transformIgnorePatterns": [
"node_modules/(?!react)/"
],
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$"
},
Run Code Online (Sandbox Code Playgroud)
我的实际组件是用ES6和打字稿构建的,如果这有助于你帮助我:)
从我读过的内容来看,导入时似乎开玩笑,因为节点不了解ES6导入.我在网上尝试过的解决方案似乎都没有效果.
这里还有我的开发依赖项:
"devDependencies": {
"awesome-typescript-loader": "^3.2.2",
"babel-cli": "^6.24.1",
"babel-core": "^6.25.0",
"babel-eslint": "^7.2.3",
"babel-jest": "^20.0.3", …Run Code Online (Sandbox Code Playgroud) 我正在使用Mocha和Chai一个节点项目,并想知道如何在节点函数中测试错误回调?
以下是我要测试的代码示例:
savePlayer: function(player) {
var playerName = player.name;
modules.fs.writeFile('./Data/' + playerName + '.json', JSON.stringify(player), function (err) {
if (err) {
return console.log(err.message);
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试:
describe("savePlayer", function() {
it("Should save the player in JSON, using thier name", function() {
var player = {name: "test" }
modules.data.savePlayer(player);
var playerFile = modules.fs.readFileSync('Data/test.json').toString('utf8');
expect(playerFile).should.exist;
});
});
Run Code Online (Sandbox Code Playgroud)
这通过了,但我想要完整的代码覆盖率.此行return console.log(err.message);未经测试,我不确定如何伪造错误并测试控制台是否报告错误.
babel-jest ×1
chai ×1
ecmascript-6 ×1
javascript ×1
jestjs ×1
mocha.js ×1
node.js ×1
reactjs ×1
unit-testing ×1