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());
})();