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

See Sinon documentation