Node.js ecmascript 6 模拟类方法



node.js ecmascript 6 特性可以用来模拟函数调用吗?我看到有Proxy,但不确定如何使用它。

让我们说..我有一个代码

class E{
  someOtherMethod(a){
    return 100;
  }
}
class D{
  someMethod(a){
    // some ... code 
    var e = new E();
    e.someOtherMethod();
    // some ... more code 
  }
}

当我只引用 D 并且在某个方法中创建 E 的实例时,我想模拟它,我想测试它。

var d = new D();
when(E).someOtherMethod(a).return(1); // Or anything similar with ES 6

试试吧。

它应该可以注意你。ES6 并没有改变 Javascript 的内部结构,它只是在它上面放了一些语法糖。这是我刚刚在 Chrome 中测试的代码(它通过返回"Mock"来工作),所以它应该在没有 Node 中的函数包装器的情况下正常工作。

(function() {
    'use strict';
    class D {
        someMethod() {
            return 100;
        }
    };
    var obj = new D();
    var oldMthd = obj.someMethod;
    obj.someMethod = function() { return 'Mock'; }
    alert(obj.someMethod());
})();

最新更新