有没有办法使用 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
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