我可以使用ESM和摩卡咖啡模拟导入吗?

时间:2019-02-14 02:43:45

标签: javascript ecmascript-6 mocha

我有类似以下内容

import chai from "chai";
import { Thing } from "../src/Thing"

describe("",()=>{
    it("", ()=>{
        chai.assert.equal(Thing.doSomething(), true);
    });
}) 

// Thing.mjs

import { ToMock } from "./Test"

export class Thing {
    static doSomething(){
        ToMock.doSomething();
    }
}

因此,在这种情况下,我想模拟ToMock。无需使用构造函数进行超级骇客的操作...

有没有办法模拟ESM导入?

此选项确实有效,但这是我要避免的事情...

import chai from "chai";
import { Thing } from "../src/Thing"

describe("",()=>{
    let mock = {
        doSomething: ()=>true;
    }
    let thing = new Thing(mock);
    it("", ()=>{
        chai.assert.equal(thing.doSomething(), true);
    });
}) 

// Thing.mjs
import { ToMock } from "./Test"

export class Thing {
    constructor(mock){
        this.base = mock ? mock : ToMock;
    }
    doSomething(){
        this.base.doSomething();
    }
}

这似乎确实有效,但是必须有更好的方法。

0 个答案:

没有答案