Sinon存根在这种情况下不起作用?

时间:2018-02-17 15:14:52

标签: javascript unit-testing 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();
  });
});

有人可以告诉我我在做错的地方吗?

1 个答案:

答案 0 :(得分:0)

您错误地使用了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