Sinon.JSを使ってXMLHttpRequestをテスト
Sinon.JSのfakeServerを使えばレスポンスをエミュレートする事も出来るらしいのでやってみた
(function() {
  var server = sinon.fakeServer.create();
  server.respondWith(
    "GET",
    "/test",
    [200, { "Content-Type": "text/plain" }, "hoge"]
  );
  var spy = sinon.spy();
  getEvents(spy);
  server.respond();
  /*
  var responses = server.responses;
  var response = server.responses[0].response;
  */
  sinon.assert.calledWith(spy, "hoge");
  server.restore();
})();
function getEvents(cb) {
  var xhr = new XMLHttpRequest();
  xhr.open("GET", "/test", true);
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
      var data = xhr.responseText;
      cb(data);
    }
  };
  xhr.send(null);
}
本当はfakeServerのcreateとrestoreはUnit系のsetUpとかtearDownを使ってやるのが良いらしい。
XMLHttpRequestのレスポンスをエミュレートさせる事が出来るので、それを使えばテストしたりなども出来るっていう感じかと