So this is interesting.

`sinon.js` was used to build `Batman.TestCase` because it's what we used for our JS tests in Shopify and I think works really well. But this is the first (well second, @pushrax used `sinon.spy` within a `SetSort` test) time we actually call sinon directly in a Batman test.

Most of the Batman tests were written before `TestCase` and `sinon.js` existed and they instead use custom mocks, stubs and spies.

I'm all for transitioning to sinon within Batman core, and I'm fine with leaving this here. However, I think this highlights the need to slowly being transitioning Batman's test suite to also use `TestCase`. A few benefits are:

1. `TestCase` automatically wraps every test in a sinon sandbox, which means you never need to explicitly call `restore` it will be done automatically.

2. The sinon stub, mock and spy implementations are a lot more battle tested than the custom versions currently being used in a lot of tests.

3. The `TestCase` methods were designed to more closely match standard Rails test methods.

Anyways, I think this is good, just worth thinking about.