創造一個新的間諜

我們可以使用 jasmine.createSpy() 建立一個獨立的間諜。如果我們需要將函式作為回撥傳遞給另一個函式並想要測試它的使用方式,這通常很有用。

// source code
function each(arr, fn) {
    arr.forEach(fn);
}

// test code
describe('each', function() {
  let mockFn = jasmine.createSpy();

  it('calls a function for each item in the array ', function() {
    let arr = [1,2,3,4,5]
    each(arr, mockFn);
    expect(mockFn.calls.count()).toBe(arr.length);
  })
});