title: How to test multiple calls to the same function with different params?
body: <p>Supose I have a function like this:</p>
  
  <pre><code>function foo () {
      obj.method(1);
      obj.method(2);
      obj.method(3);
  }
  </code></pre>
  
  <p>To test it I want to do 3 tests (using Mocha TDD and Sinon):</p>
  
  <pre><code>test('medthod is called with 1', function () {
      var expectation = sinon.mock(obj).expects('method').once().withExactArgs(1);
      foo();
      expectation.verify();
  });
  
  test('medthod is called with 2', function () {
      var expectation = sinon.mock(obj).expects('method').once().withExactArgs(2);
      foo();
      expectation.verify();
  });
  
  test('medthod is called with 3', function () {
      var expectation = sinon.mock(obj).expects('method').once().withExactArgs(3);
      foo();
      expectation.verify();
  });
  </code></pre>
  
  <p>Using this system sinon fails with "unexpected call" message on each test.</p>
  
  <p>I've solved it joining the tree tests into one:</p>
  
  <pre><code>test('medthod is called with 1, 2 and 3', function () {
      var mock = sinon.mock(obj);
      mock.expects('method').once().withExactArgs(1);
      mock.expects('method').once().withExactArgs(2);
      mock.expects('method').once().withExactArgs(3);
      foo();
      mock.verify();
  });
  </code></pre>
  
  <p>But i want to have three tests and not one with three assertions/expectations.</p>
  
  <p>How can this be achieved?</p>