Squashed spy refactor and new spy syntax

Jasmine spies now have a 'and' property which allows the user to
change the spy's execution strategy-- such as '.and.callReturn(4)'
and a 'calls' property which allows inspection of the calls a spy
has received.

* This is a breaking change *

There is a CallTracker that keeps track of all calls and arguments
and a SpyStrategy which determines what the spy should do when it
is called.
This commit is contained in:
Davis W. Frank & Sheel Choksi
2013-07-17 23:11:55 -07:00
committed by Colin O'Byrne and JR Boyens
parent 18c30566bd
commit 3847557bbc
32 changed files with 692 additions and 413 deletions

View File

@@ -72,15 +72,15 @@ describe("DelayedFunctionScheduler", function() {
scheduler.tick(20);
expect(fn.callCount).toBe(1);
expect(fn.calls.count()).toBe(1);
scheduler.tick(40);
expect(fn.callCount).toBe(3);
expect(fn.calls.count()).toBe(3);
scheduler.tick(21);
expect(fn.callCount).toBe(4);
expect(fn.calls.count()).toBe(4);
});
@@ -158,7 +158,7 @@ describe("DelayedFunctionScheduler", function() {
var scheduler = new j$.DelayedFunctionScheduler(),
fn = jasmine.createSpy('fn'),
recurringCallCount = 0,
recurring = jasmine.createSpy('recurring').andCallFake(function() {
recurring = jasmine.createSpy('recurring').and.callFake(function() {
recurringCallCount++;
if (recurringCallCount < 5) {
expect(fn).not.toHaveBeenCalled();
@@ -171,7 +171,7 @@ describe("DelayedFunctionScheduler", function() {
scheduler.tick(60);
expect(recurring).toHaveBeenCalled();
expect(recurring.callCount).toBe(6);
expect(recurring.calls.count()).toBe(6);
expect(fn).toHaveBeenCalled();
});