有没有办法使用 sinon 测试下面的代码

Is there way to test below code using sinon

meld.before(myObject, 'doSomething', function(x) {
    console.log(2);
});

有没有人试过为上面的代码语句编写测试用例。

使用 meld.js 库和 sinon

关于 sinon,您可以使用各种拦截器(模拟、间谍等)。

但是我对你的第二个陈述很感兴趣:

有没有人试过为上面的代码语句编写测试用例

是的,meld 开发团队有。您可以使用与 meld 开发团队测试相同 API 调用完全相同的方式来测试 meld API。可以在此处找到存储库中的工作代码:

https://github.com/cujojs/meld/blob/master/test/before.js

虽然这不是使用 Sinon,但它确实回答了您的(预期的?)问题。

解决:就是调用这个方法

call (myObject.doSomething)  it logs 2 and your log

删除行为

var rem = meld.before(myObject, 'doSomething', function(x) {
    console.log(2);
}); 

rem.remove();

now call again (myObject.doSomething)  // just logs normal log