cjohansen/Sinon.JS — pull request #350 by tf (2013-11-17 12:12:54+00:00)
Title: Remove withArgs method from behavior

While writing the documentation (cjohansen/sinon-web#30) for the new `onCall` method (#244) I've come across an ambiguity in the API. Please consider the following explanation, which I is taken from the commit message of this pull request:

`stub.onCall(n).withArgs(...)` should not be an alias for
`stub.withArgs(...).onCall(n)` since it leads to an ambiguous and
possibly surprising api:

stub.onFirstCall()
.withArgs(1).returns(2)
.withArgs(2).returns(3);

stub(1); // => 2
stub(2); // => 3

The stub definition seems to imply though that we are only further
distinguishing cases for the first call. It would therefore be
reasonable to expect the second call to return undefined. This is not
the case if the alias removed by this commit is in effect.

Even worse, keeping the alias might lead to clashes in the api once
argument filtering for single calls as implied above shall be added to
the codebase.

We therefore for now throw an error which explains that calling
withArgs on a behavior is not yet supported, deferring the discussion
what it should mean.