diff --git a/README.markdown b/README.markdown
index 031be05..14b4fff 100644
--- a/README.markdown
+++ b/README.markdown
@@ -291,14 +291,14 @@ Here are a few examples:
spyOn(Klass, 'method');
Klass.method('foo argument');
- expect(Klass.method).wasCalledWith('foo argument');
+ expect(Klass.method).toHaveBeenCalledWith('foo argument');
});
it('should spy on Klass#methodWithCallback') {
var callback = Jasmine.createSpy();
Klass.methodWithCallback(callback);
- expect(callback).wasCalledWith('foo');
+ expect(callback).toHaveBeenCalledWith('foo');
});
@@ -318,23 +318,25 @@ Spies can be very useful for testing AJAX or other asynchronous behaviors that t
var callback = Jasmine.createSpy();
Klass.asyncMethod(callback);
- expect(callback).wasNotCalled();
+ expect(callback).not.toHaveBeenCalled();
var someResponseData = 'foo';
Klass.asyncMethod.mostRecentCall.args[0](someResponseData);
- expect(callback).wasCalledWith(someResponseData);
+ expect(callback).toHaveBeenCalledWith(someResponseData);
});
There are spy-specfic matchers that are very handy.
-`expect(x).wasCalled()` passes if `x` is a spy and was called
+`expect(x).toHaveBeenCalled()` passes if `x` is a spy and was called
-`expect(x).wasCalledWith(arguments)` passes if `x` is a spy and was called with the specified arguments
+`expect(x).toHaveBeenCalledWith(arguments)` passes if `x` is a spy and was called with the specified arguments
-`expect(x).wasNotCalled()` passes if `x` is a spy and was not called
+`expect(x).not.toHaveBeenCalled()` passes if `x` is a spy and was not called
-`expect(x).wasNotCalledWith(arguments)` passes if `x` is a spy and was not called with the specified arguments
+`expect(x).not.toHaveBeenCalledWith(arguments)` passes if `x` is a spy and was not called with the specified arguments
+
+The old matchers `wasCalled`, `wasNotCalled`, `wasCalledWith`, and `wasNotCalledWith` have been deprecated and will be removed in a future release. Please change your specs to use `toHaveBeenCalled`, `not.toHaveBeenCalled`, `toHaveBeenCalledWith`, and `not.toHaveBeenCalledWith` respectively.
Spies can be trained to respond in a variety of ways when invoked:
diff --git a/lib/jasmine.js b/lib/jasmine.js
index e14674a..c6b65a0 100644
--- a/lib/jasmine.js
+++ b/lib/jasmine.js
@@ -172,7 +172,7 @@ jasmine.isDomNode = function(obj) {
*
* @example
* // don't care about which function is passed in, as long as it's a function
- * expect(mySpy).wasCalledWith(jasmine.any(Function));
+ * expect(mySpy).toHaveBeenCalledWith(jasmine.any(Function));
*
* @param {Class} clazz
* @returns matchable object of the type clazz
@@ -187,7 +187,8 @@ jasmine.any = function(clazz) {
* Spies should be created in test setup, before expectations. They can then be checked, using the standard Jasmine
* expectation syntax. Spies can be checked if they were called or not and what the calling params were.
*
- * A Spy has the following mehtod: wasCalled, callCount, mostRecentCall, and argsForCall (see docs)
+ * A Spy has the following fields: wasCalled, callCount, mostRecentCall, and argsForCall (see docs).
+ *
* Spies are torn down at the end of every spec.
*
* Note: Do not call new jasmine.Spy() directly - a spy must be created using spyOn, jasmine.createSpy or jasmine.createSpyObj.
@@ -217,8 +218,8 @@ jasmine.any = function(clazz) {
*
* // mock example
* foo.not(7 == 7);
- * expect(foo.not).wasCalled();
- * expect(foo.not).wasCalledWith(true);
+ * expect(foo.not).toHaveBeenCalled();
+ * expect(foo.not).toHaveBeenCalledWith(true);
*
* @constructor
* @see spyOn, jasmine.createSpy, jasmine.createSpyObj
@@ -1224,12 +1225,18 @@ jasmine.Matchers.prototype.toBeFalsy = function() {
return !this.actual;
};
+
+/** @deprecated Use expect(xxx).toHaveBeenCalled() instead */
+jasmine.Matchers.prototype.wasCalled = function() {
+ return this.toHaveBeenCalled();
+};
+
/**
* Matcher that checks to see if the actual, a Jasmine spy, was called.
*/
-jasmine.Matchers.prototype.wasCalled = function() {
+jasmine.Matchers.prototype.toHaveBeenCalled = function() {
if (arguments.length > 0) {
- throw new Error('wasCalled does not take arguments, use wasCalledWith');
+ throw new Error('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith');
}
if (!jasmine.isSpy(this.actual)) {
@@ -1245,6 +1252,8 @@ jasmine.Matchers.prototype.wasCalled = function() {
/**
* Matcher that checks to see if the actual, a Jasmine spy, was not called.
+ *
+ * @deprecated Use expect(xxx).not.toHaveBeenCalled() instead
*/
jasmine.Matchers.prototype.wasNotCalled = function() {
if (arguments.length > 0) {
@@ -1262,13 +1271,18 @@ jasmine.Matchers.prototype.wasNotCalled = function() {
return !this.actual.wasCalled;
};
+/** @deprecated Use expect(xxx).toHaveBeenCalledWith() instead */
+jasmine.Matchers.prototype.wasCalledWith = function() {
+ return this.toHaveBeenCalledWith.apply(this, arguments);
+};
+
/**
* Matcher that checks to see if the actual, a Jasmine spy, was called with a set of parameters.
*
* @example
*
*/
-jasmine.Matchers.prototype.wasCalledWith = function() {
+jasmine.Matchers.prototype.toHaveBeenCalledWith = function() {
var expectedArgs = jasmine.util.argsToArray(arguments);
if (!jasmine.isSpy(this.actual)) {
throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
@@ -1284,6 +1298,7 @@ jasmine.Matchers.prototype.wasCalledWith = function() {
return this.env.contains_(this.actual.argsForCall, expectedArgs);
};
+/** @deprecated Use expect(xxx).not.toHaveBeenCalledWith() instead */
jasmine.Matchers.prototype.wasNotCalledWith = function() {
var expectedArgs = jasmine.util.argsToArray(arguments);
if (!jasmine.isSpy(this.actual)) {
@@ -2249,7 +2264,6 @@ jasmine.Clock = {
},
uninstallMock: function() {
- jasmine.log("uninstall")
jasmine.Clock.assertInstalled();
jasmine.Clock.installed = jasmine.Clock.real;
},
@@ -2313,5 +2327,5 @@ jasmine.version_= {
"major": 0,
"minor": 11,
"build": 0,
- "revision": 1277317833
+ "revision": 1277400646
};
diff --git a/spec/suites/BaseSpec.js b/spec/suites/BaseSpec.js
index fd1a2db..121a881 100644
--- a/spec/suites/BaseSpec.js
+++ b/spec/suites/BaseSpec.js
@@ -11,7 +11,7 @@ describe("base.js", function() {
it("should accept n arguments", function() {
spyOn(jasmine.getEnv().currentSpec, 'log');
jasmine.log(1, 2, 3);
- expect(jasmine.getEnv().currentSpec.log).wasCalledWith(1, 2, 3);
+ expect(jasmine.getEnv().currentSpec.log).toHaveBeenCalledWith(1, 2, 3);
});
});
diff --git a/spec/suites/EnvSpec.js b/spec/suites/EnvSpec.js
index 1b59f3e..7d87f4d 100644
--- a/spec/suites/EnvSpec.js
+++ b/spec/suites/EnvSpec.js
@@ -79,7 +79,7 @@ describe("jasmine.Env", function() {
it("should allow reporters to be registered", function() {
env.addReporter(fakeReporter);
env.reporter.log("message");
- expect(fakeReporter.log).wasCalledWith("message");
+ expect(fakeReporter.log).toHaveBeenCalledWith("message");
});
});
diff --git a/spec/suites/MatchersSpec.js b/spec/suites/MatchersSpec.js
index 7088614..ef26c95 100644
--- a/spec/suites/MatchersSpec.js
+++ b/spec/suites/MatchersSpec.js
@@ -15,7 +15,7 @@ describe("jasmine.Matchers", function() {
function match(value) {
return spec.expect(value);
}
-
+
function lastResult() {
return spec.addMatcherResult.mostRecentCall.args[0];
}
@@ -555,23 +555,34 @@ describe("jasmine.Matchers", function() {
};
}
- describe("wasCalled", function() {
- it("should pass iff the spy was called", function() {
- expect(match(TestClass.spyFunction).wasCalled()).toEqual(false);
+ describe("toHaveBeenCalled", function() {
+ it("should pass if the spy was called", function() {
+ expect(match(TestClass.spyFunction).toHaveBeenCalled()).toEqual(false);
TestClass.spyFunction();
- expect(match(TestClass.spyFunction).wasCalled()).toEqual(true);
+ expect(match(TestClass.spyFunction).toHaveBeenCalled()).toEqual(true);
});
it("should throw an exception when invoked with any arguments", function() {
expect(function() {
- match(TestClass.normalFunction).wasCalled("unwanted argument");
- }).toThrow('wasCalled does not take arguments, use wasCalledWith');
+ match(TestClass.normalFunction).toHaveBeenCalled("unwanted argument");
+ }).toThrow('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith');
});
- it('should throw an exception when invoked on a non-spy', shouldThrowAnExceptionWhenInvokedOnANonSpy('wasCalled'));
+ it('should throw an exception when invoked on a non-spy', shouldThrowAnExceptionWhenInvokedOnANonSpy('toHaveBeenCalled'));
});
+ describe("wasCalled", function() {
+ it("should alias toHaveBeenCalled", function() {
+ spyOn(TestClass, 'normalFunction');
+
+ TestClass.normalFunction();
+
+ expect(TestClass.normalFunction).wasCalled();
+ });
+ });
+
+
describe("wasNotCalled", function() {
it("should pass iff the spy was not called", function() {
expect(match(TestClass.spyFunction).wasNotCalled()).toEqual(true);
@@ -589,16 +600,16 @@ describe("jasmine.Matchers", function() {
it('should throw an exception when invoked on a non-spy', shouldThrowAnExceptionWhenInvokedOnANonSpy('wasNotCalled'));
});
- describe("wasCalledWith", function() {
- it('wasCalledWith should return true if it was called with the expected args', function() {
+ describe("toHaveBeenCalledWith", function() {
+ it('toHaveBeenCalledWith should return true if it was called with the expected args', function() {
TestClass.spyFunction('a', 'b', 'c');
- expect(match(TestClass.spyFunction).wasCalledWith('a', 'b', 'c')).toEqual(true);
+ expect(match(TestClass.spyFunction).toHaveBeenCalledWith('a', 'b', 'c')).toEqual(true);
});
it('should return false if it was not called with the expected args', function() {
TestClass.spyFunction('a', 'b', 'c');
var expected = match(TestClass.spyFunction);
- expect(expected.wasCalledWith('c', 'b', 'a')).toEqual(false);
+ expect(expected.toHaveBeenCalledWith('c', 'b', 'a')).toEqual(false);
var result = lastResult();
expect(result.passed()).toEqual(false);
expect(result.expected).toEqual(['c', 'b', 'a']);
@@ -609,7 +620,7 @@ describe("jasmine.Matchers", function() {
it('should return false if it was not called', function() {
var expected = match(TestClass.spyFunction);
- expect(expected.wasCalledWith('c', 'b', 'a')).toEqual(false);
+ expect(expected.toHaveBeenCalledWith('c', 'b', 'a')).toEqual(false);
var result = lastResult();
expect(result.passed()).toEqual(false);
expect(result.expected).toEqual(['c', 'b', 'a']);
@@ -621,12 +632,12 @@ describe("jasmine.Matchers", function() {
var expected = match(TestClass.spyFunction);
TestClass.spyFunction('a', 'b', 'c');
TestClass.spyFunction('d', 'e', 'f');
- expect(expected.wasCalledWith('a', 'b', 'c')).toEqual(true);
- expect(expected.wasCalledWith('d', 'e', 'f')).toEqual(true);
- expect(expected.wasCalledWith('x', 'y', 'z')).toEqual(false);
+ expect(expected.toHaveBeenCalledWith('a', 'b', 'c')).toEqual(true);
+ expect(expected.toHaveBeenCalledWith('d', 'e', 'f')).toEqual(true);
+ expect(expected.toHaveBeenCalledWith('x', 'y', 'z')).toEqual(false);
});
- it('should throw an exception when invoked on a non-spy', shouldThrowAnExceptionWhenInvokedOnANonSpy('wasCalledWith'));
+ it('should throw an exception when invoked on a non-spy', shouldThrowAnExceptionWhenInvokedOnANonSpy('toHaveBeenCalledWith'));
describe("to build an ExpectationResult", function () {
beforeEach(function() {
@@ -643,10 +654,10 @@ describe("jasmine.Matchers", function() {
it("should should handle the case of a spy", function() {
TestClass.someFunction('a', 'c');
var matcher = match(TestClass.someFunction);
- matcher.wasCalledWith('a', 'b');
+ matcher.toHaveBeenCalledWith('a', 'b');
var result = lastResult();
- expect(result.matcherName).toEqual("wasCalledWith");
+ expect(result.matcherName).toEqual("toHaveBeenCalledWith");
expect(result.passed()).toEqual(false);
expect(result.message).toContain(jasmine.pp(['a', 'b']));
expect(result.message).toContain(jasmine.pp(['a', 'c']));
@@ -656,6 +667,16 @@ describe("jasmine.Matchers", function() {
});
});
+ describe("wasCalledWith", function() {
+ it("should alias toHaveBeenCalledWith", function() {
+ spyOn(TestClass, 'normalFunction');
+
+ TestClass.normalFunction(123);
+
+ expect(TestClass.normalFunction).wasCalledWith(123);
+ });
+ });
+
describe("wasNotCalledWith", function() {
it('should return true if the spy was NOT called with the expected args', function() {
TestClass.spyFunction('a', 'b', 'c');
@@ -676,7 +697,7 @@ describe("jasmine.Matchers", function() {
it('should return true if it was not called', function() {
var expected = match(TestClass.spyFunction);
expect(expected.wasNotCalledWith('c', 'b', 'a')).toEqual(true);
- });
+ });
it('should allow matches across multiple calls', function() {
var expected = match(TestClass.spyFunction);
diff --git a/spec/suites/MultiReporterSpec.js b/spec/suites/MultiReporterSpec.js
index 1118efa..0a82ee0 100644
--- a/spec/suites/MultiReporterSpec.js
+++ b/spec/suites/MultiReporterSpec.js
@@ -19,12 +19,12 @@ describe("jasmine.MultiReporter", function() {
it("should delegate to any and all subreporters", function() {
multiReporter.reportSpecResults('blah', 'foo');
- expect(fakeReporter1.reportSpecResults).wasCalledWith('blah', 'foo');
- expect(fakeReporter2.reportSpecResults).wasCalledWith('blah', 'foo');
+ expect(fakeReporter1.reportSpecResults).toHaveBeenCalledWith('blah', 'foo');
+ expect(fakeReporter2.reportSpecResults).toHaveBeenCalledWith('blah', 'foo');
});
it("should quietly skip delegating to any subreporters which lack the given method", function() {
multiReporter.reportRunnerStarting('blah', 'foo');
- expect(fakeReporter2.reportRunnerStarting).wasCalledWith('blah', 'foo');
+ expect(fakeReporter2.reportRunnerStarting).toHaveBeenCalledWith('blah', 'foo');
});
});
\ No newline at end of file
diff --git a/spec/suites/RunnerSpec.js b/spec/suites/RunnerSpec.js
index 7f1899c..3f66aaa 100644
--- a/spec/suites/RunnerSpec.js
+++ b/spec/suites/RunnerSpec.js
@@ -210,11 +210,11 @@ describe('RunnerTest', function() {
});
env.currentRunner().execute();
- expect(fakeReporter.reportRunnerResults).wasNotCalled();
+ expect(fakeReporter.reportRunnerResults).not.toHaveBeenCalled();
fakeTimer.tick(200);
//This blows up the JSApiReporter.
- //expect(fakeReporter.reportRunnerResults).wasCalledWith(env.currentRunner);
- expect(fakeReporter.reportRunnerResults).wasCalled();
+ //expect(fakeReporter.reportRunnerResults).toHaveBeenCalledWith(env.currentRunner);
+ expect(fakeReporter.reportRunnerResults).toHaveBeenCalled();
expect(fakeReporter.reportRunnerResults.mostRecentCall.args[0].results()).toEqual(env.currentRunner().results());
});
});
@@ -227,12 +227,12 @@ describe('RunnerTest', function() {
var runner = new jasmine.Runner(env);
runner.arbitraryVariable = 'foo';
spyOn(runner.queue, 'start');
- expect(fakeReporter.reportRunnerStarting).wasNotCalled();
+ expect(fakeReporter.reportRunnerStarting).not.toHaveBeenCalled();
runner.execute();
- expect(fakeReporter.reportRunnerStarting).wasCalled();
+ expect(fakeReporter.reportRunnerStarting).toHaveBeenCalled();
var reportedRunner = fakeReporter.reportRunnerStarting.mostRecentCall.args[0];
expect(reportedRunner.arbitraryVariable).toEqual('foo');
- expect(runner.queue.start).wasCalled();
+ expect(runner.queue.start).toHaveBeenCalled();
});
describe("when suites are nested", function() {
diff --git a/spec/suites/SpecRunningSpec.js b/spec/suites/SpecRunningSpec.js
index de41a92..bbc76c8 100644
--- a/spec/suites/SpecRunningSpec.js
+++ b/spec/suites/SpecRunningSpec.js
@@ -1118,7 +1118,7 @@ describe("jasmine spec running", function () {
disabledSuite.execute();
- expect(spy).wasNotCalled();
+ expect(spy).not.toHaveBeenCalled();
});
it('#explodes should throw an exception when it is called inside a spec', function() {
diff --git a/spec/suites/SpySpec.js b/spec/suites/SpySpec.js
index 60d7c25..0523917 100644
--- a/spec/suites/SpySpec.js
+++ b/spec/suites/SpySpec.js
@@ -169,11 +169,11 @@ describe('Spies', function () {
var TestClass = { someFunction: function() {} };
this.spyOn(TestClass, 'someFunction');
- expect(TestClass.someFunction).wasNotCalled();
+ expect(TestClass.someFunction).not.toHaveBeenCalled();
TestClass.someFunction();
- expect(TestClass.someFunction).wasCalled();
+ expect(TestClass.someFunction).toHaveBeenCalled();
TestClass.someFunction.reset();
- expect(TestClass.someFunction).wasNotCalled();
+ expect(TestClass.someFunction).not.toHaveBeenCalled();
expect(TestClass.someFunction.callCount).toEqual(0);
});
diff --git a/spec/suites/WaitsForBlockSpec.js b/spec/suites/WaitsForBlockSpec.js
index 7768e5f..f6cd109 100644
--- a/spec/suites/WaitsForBlockSpec.js
+++ b/spec/suites/WaitsForBlockSpec.js
@@ -17,7 +17,7 @@ describe('WaitsForBlock', function () {
var block = new jasmine.WaitsForBlock(env, timeout, latchFunction, message, spec);
expect(onComplete).wasNotCalled();
block.execute(onComplete);
- expect(onComplete).wasCalled();
+ expect(onComplete).toHaveBeenCalled();
});
it('latchFunction should run in same scope as spec', function () {
@@ -36,8 +36,8 @@ describe('WaitsForBlock', function () {
spyOn(spec, 'fail');
var block = new jasmine.WaitsForBlock(env, timeout, latchFunction, message, spec);
block.execute(onComplete);
- expect(spec.fail).wasCalledWith('some error');
- expect(onComplete).wasCalled();
+ expect(spec.fail).toHaveBeenCalledWith('some error');
+ expect(onComplete).toHaveBeenCalled();
});
describe("if latchFunction returns false", function() {
@@ -69,7 +69,7 @@ describe('WaitsForBlock', function () {
expect(onComplete).wasNotCalled();
latchFunction.andReturn(true);
fakeTimer.tick(100);
- expect(onComplete).wasCalled();
+ expect(onComplete).toHaveBeenCalled();
});
it('spec should fail with the passed message if the timeout is reached (and not call onComplete)', function () {
@@ -78,7 +78,7 @@ describe('WaitsForBlock', function () {
block.execute(onComplete);
expect(spec.fail).wasNotCalled();
fakeTimer.tick(timeout);
- expect(spec.fail).wasCalled();
+ expect(spec.fail).toHaveBeenCalled();
var failMessage = spec.fail.mostRecentCall.args[0].message;
expect(failMessage).toMatch(message);
expect(onComplete).wasNotCalled();
diff --git a/src/Matchers.js b/src/Matchers.js
index f74eac6..0e75bfb 100644
--- a/src/Matchers.js
+++ b/src/Matchers.js
@@ -162,12 +162,18 @@ jasmine.Matchers.prototype.toBeFalsy = function() {
return !this.actual;
};
+
+/** @deprecated Use expect(xxx).toHaveBeenCalled() instead */
+jasmine.Matchers.prototype.wasCalled = function() {
+ return this.toHaveBeenCalled();
+};
+
/**
* Matcher that checks to see if the actual, a Jasmine spy, was called.
*/
-jasmine.Matchers.prototype.wasCalled = function() {
+jasmine.Matchers.prototype.toHaveBeenCalled = function() {
if (arguments.length > 0) {
- throw new Error('wasCalled does not take arguments, use wasCalledWith');
+ throw new Error('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith');
}
if (!jasmine.isSpy(this.actual)) {
@@ -183,6 +189,8 @@ jasmine.Matchers.prototype.wasCalled = function() {
/**
* Matcher that checks to see if the actual, a Jasmine spy, was not called.
+ *
+ * @deprecated Use expect(xxx).not.toHaveBeenCalled() instead
*/
jasmine.Matchers.prototype.wasNotCalled = function() {
if (arguments.length > 0) {
@@ -200,13 +208,18 @@ jasmine.Matchers.prototype.wasNotCalled = function() {
return !this.actual.wasCalled;
};
+/** @deprecated Use expect(xxx).toHaveBeenCalledWith() instead */
+jasmine.Matchers.prototype.wasCalledWith = function() {
+ return this.toHaveBeenCalledWith.apply(this, arguments);
+};
+
/**
* Matcher that checks to see if the actual, a Jasmine spy, was called with a set of parameters.
*
* @example
*
*/
-jasmine.Matchers.prototype.wasCalledWith = function() {
+jasmine.Matchers.prototype.toHaveBeenCalledWith = function() {
var expectedArgs = jasmine.util.argsToArray(arguments);
if (!jasmine.isSpy(this.actual)) {
throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
@@ -222,6 +235,7 @@ jasmine.Matchers.prototype.wasCalledWith = function() {
return this.env.contains_(this.actual.argsForCall, expectedArgs);
};
+/** @deprecated Use expect(xxx).not.toHaveBeenCalledWith() instead */
jasmine.Matchers.prototype.wasNotCalledWith = function() {
var expectedArgs = jasmine.util.argsToArray(arguments);
if (!jasmine.isSpy(this.actual)) {
diff --git a/src/base.js b/src/base.js
index 21549ae..60db77e 100755
--- a/src/base.js
+++ b/src/base.js
@@ -172,7 +172,7 @@ jasmine.isDomNode = function(obj) {
*
* @example
* // don't care about which function is passed in, as long as it's a function
- * expect(mySpy).wasCalledWith(jasmine.any(Function));
+ * expect(mySpy).toHaveBeenCalledWith(jasmine.any(Function));
*
* @param {Class} clazz
* @returns matchable object of the type clazz
@@ -187,7 +187,8 @@ jasmine.any = function(clazz) {
* Spies should be created in test setup, before expectations. They can then be checked, using the standard Jasmine
* expectation syntax. Spies can be checked if they were called or not and what the calling params were.
*
- * A Spy has the following mehtod: wasCalled, callCount, mostRecentCall, and argsForCall (see docs)
+ * A Spy has the following fields: wasCalled, callCount, mostRecentCall, and argsForCall (see docs).
+ *
* Spies are torn down at the end of every spec.
*
* Note: Do not call new jasmine.Spy() directly - a spy must be created using spyOn, jasmine.createSpy or jasmine.createSpyObj.
@@ -217,8 +218,8 @@ jasmine.any = function(clazz) {
*
* // mock example
* foo.not(7 == 7);
- * expect(foo.not).wasCalled();
- * expect(foo.not).wasCalledWith(true);
+ * expect(foo.not).toHaveBeenCalled();
+ * expect(foo.not).toHaveBeenCalledWith(true);
*
* @constructor
* @see spyOn, jasmine.createSpy, jasmine.createSpyObj