Sinon 存根在这种情况下不起作用?
Sinon stub is not working in this scenario?
我正在尝试使用 sinon stub 通过为 IF 语句创建模拟值来测试我的函数,正如 testFunction
中所述
在其中一个文件 myFunction.js 中,我有类似
的函数
function testFunction() {
var job = this.win.get.value1 //test
var job1 = this.win.get.value2 // test1
if(job === 'test' && job1 === 'test1') {
return true;
}
return false;
}
我正在尝试使用 karma 测试 testFunction,并且我尝试像这样使用 sinon 存根来存根测试函数
it('should test my function', function(done) {
var stub = sinon.stub(myFunction,'job','job1').returns('test','test1');
myFunction.testFunction('test', function(err, decodedPayload) {
decodedPayload.should.equal(true);
done();
});
});
谁能告诉我哪里做错了?
您使用的 sinon.stub
不正确。您需要对 sinon.stub
进行两次调用,一次调用要存根的 myFunction
的每个方法。
it('should test my function', function(done) {
sinon.stub(myFunction,'job').returns('test');
sinon.stub(myFunction,'job1').returns('test1');
myFunction.testFunction('test', function(err, decodedPayload) {
decodedPayload.should.equal(true);
done();
});
});
我正在尝试使用 sinon stub 通过为 IF 语句创建模拟值来测试我的函数,正如 testFunction
中所述在其中一个文件 myFunction.js 中,我有类似
的函数function testFunction() {
var job = this.win.get.value1 //test
var job1 = this.win.get.value2 // test1
if(job === 'test' && job1 === 'test1') {
return true;
}
return false;
}
我正在尝试使用 karma 测试 testFunction,并且我尝试像这样使用 sinon 存根来存根测试函数
it('should test my function', function(done) {
var stub = sinon.stub(myFunction,'job','job1').returns('test','test1');
myFunction.testFunction('test', function(err, decodedPayload) {
decodedPayload.should.equal(true);
done();
});
});
谁能告诉我哪里做错了?
您使用的 sinon.stub
不正确。您需要对 sinon.stub
进行两次调用,一次调用要存根的 myFunction
的每个方法。
it('should test my function', function(done) {
sinon.stub(myFunction,'job').returns('test');
sinon.stub(myFunction,'job1').returns('test1');
myFunction.testFunction('test', function(err, decodedPayload) {
decodedPayload.should.equal(true);
done();
});
});