監視現有功能

Jasmine 可以使用 spyOn 函式監視現有函式。

let calculator = {
  multiply: function(a, b) {
     return a * b;
  },

  square: function(a) {
    return this.multiply(a, a);
  }
}

describe('calculator', function() {
  it('squares numbers by multiplying them by themselves', function() {
    let num = 2;
    spyOn(calculator, 'multiply');
    calculator.square(NUM);
    expect(calculator.multiply).toHaveBeenCalledWith(NUM, NUM);
  })
});

在窺探了該功能後,它會被間諜取代,可以查詢該間諜有關如何以及何時被呼叫的資訊。