小编Lia*_*eth的帖子

React Jest - 意外的令牌导入

我正在学习反应,我想测试我的一个组件,但我遇到了这个错误:

{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)

unit-testing ecmascript-6 reactjs jestjs babel-jest

5
推荐指数
1
解决办法
3088
查看次数

如何在Node.js中测试错误回调

我正在使用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);未经测试,我不确定如何伪造错误并测试控制台是否报告错误.

javascript mocha.js node.js chai

3
推荐指数
1
解决办法
2179
查看次数