2017-03-21 56 views
0

測試失敗的第一個期望。是否有辦法注入一個間諜功能,這樣我可以檢查功能與正確的參數叫什麼名字?興農間諜不會被調用

  var myObj = {} 
      myObj.prop = function propFn() { 
       return 'foo' 
      } 

      myObj.func = function (disp) { 
       return disp(this.prop()) 
      } 

      let disp = sinon.spy() 
      sinon.stub(myObj, 'prop').callsFake(function fakeFn() { 
       return 'bar' 
      }) 

      expect(disp.called).to.be.true 
      disp.should.have.been.calledWith('bar') 

謝謝!

回答

0

請如下嘗試,

describe('prop',() => { 
    const myObj = {}; 
    myObj.prop = function propFn() { 
    return 'foo'; 
    }; 

    myObj.func = function (disp) { 
    return disp(this.prop()); 
    }; 
    it('should be called',() => { 
    sinon.stub(myObj, 'prop').returns('bar'); 
    const disp = sinon.spy(); 
    myObj.func(disp); 
    expect(disp.callCount).to.equal(1); 
    expect(myObj.prop.callCount).to.equal(1); 
    expect(disp.callCount).to.equal(1); 
    expect(disp.calledWith('bar')).to.equal(true); 
    }); 
}); 

結果

道具

✓應該叫

1路過(975ms)