Matchers
Matchers
Matchers can be passed as arguments to spy.calledOn
, spy.calledWith,
spy.returned and the
corresponding
sinon.assert functions as well as
spy.withArgs`. Matchers allow to be either more fuzzy or more specific about the expected value.
"test should assert fuzzy": function () { var book = { pages: 42, author: "cjno" }; var spy = sinon.spy(); spy(book); sinon.assert.calledWith(spy, sinon.match({ author: "cjno" })); sinon.assert.calledWith(spy, sinon.match.has("pages", 42)); }
"test should stub method differently based on argument types": function () { var callback = sinon.stub(); callback.withArgs(sinon.match.string).returns(true); callback.withArgs(sinon.match.number).throws("TypeError"); callback("abc"); // Returns true callback(123); // Throws TypeError }