【发布时间】:2023-03-20 00:20:02
【问题描述】:
我有一个函数 foo
var foo = function(){
this.doRandomStuff = function(callback){
//do Something
callback(false);
}
}
var bar = function(){
var fooInstance = new foo();
fooInstance.doRandomStuff(function(val){
//do Something with val
})
}
我想为 bar 函数编写测试,为此我使用 mocha 和 sinon。
describe("Foo Test",function(){
it("testing foo",function(done){
var instance = new foo();
sinon.stub(instance,'doRandomStuff').callsArgWith(0,true); // This Doesn't work
sinon.stub(foo,'doRandomStuff').callsArgWith(0,true); // This also Doesn't work
bar();
done();
})
});
我得到以下异常:
TypeError: 不能存根不存在的自己的属性 doRandomStuff
【问题讨论】:
-
您无法测试此代码。您正在 bar 函数中创建 foo 的新实例。所以你没有这个实例的访问权限。为了使其可测试,您可以将 foo 的实例传递给 bar 函数。
标签: javascript node.js unit-testing mocha.js sinon