zoukankan      html  css  js  c++  java
  • “export default ”在node进行单元测试时遇到麻烦

    export default class EnWordStudy{ 
    //...
    }
    

      程序是electron-vue,所以大量存在export default的语法,于是我的后台的类也使用类似语法。

    以下是单元测试的代码treetest.js

    import EnWordsDb from "../src/renderer/enwords";
    import EnWordStudy from "../src/renderer/enwordstudy";
    import assert  from "assert";
    
    let db = new EnWordsDb();
    let dbStu = new EnWordStudy(db);
    dbStu.init((data)=>{
        assert.ok( data,"has return");
    });   
    

      但在进行单元测试时会有麻烦,会提示“SyntaxError: Unexpected identifier”

     查网友说明,webpack 2中不允许混用import和module.export

    https://www.cnblogs.com/joyco773/p/8688410.html

    所以也不打算动原有的代码,还好找到以下内容

    https://blog.csdn.net/zwkkkk1/article/details/81564971

    参考上面的内容,我做了以下几步

    1.安装依赖

    npm install babel-register babel-preset-env -D
    

      

    2.增加start.js

    require('babel-register') ({
        presets: [ 'env' ]
    })
    module.exports = require('./treetest.js')
    

      

    3.原测试代码node treetest.js,改为运行node start.js

    完美兼容!当然每次都这么加一个文件也不是一个好办法,有前面的基础,其实可以更简便。以下以mocha的测试例子说明一下。其实就是改用require,注意后面有个".default",并在文件头增加presets

    require('babel-register')({
        presets: ['env']
    })
    
    const EnWordsDb = require("../src/renderer/enwords.js").default;
    const EnWordStudy = require("../src/renderer/enwordstudy.js").default;
    const assert  = require("assert");
    
    describe("EnWordsDb",()=>{
        describe("init(cb)",()=>{
            it("it should be good",()=>{
                let db = new EnWordsDb();
                let dbStu = new EnWordStudy(db);
                dbStu.init((data)=>{
                    assert.ok( data,"has return");
                }); 
            });
        });
    });
    

      

  • 相关阅读:
    控制语句
    (小程序)接收用户键盘输入
    运算符
    java doc形成注释文档
    linux中rz、sz命令,zip、unzip命令,sqlite3基本操作
    hash应用-加随机盐保存密码
    非对称/对称加密算法,hash算法
    自签名的应用--数字货币
    HTTPS原理
    Django中app的model相互引用问题
  • 原文地址:https://www.cnblogs.com/kevin-Y/p/12229717.html
Copyright © 2011-2022 走看看