title: Jasmine does not reset spy after each test spec
body: <p>I have the following spec.</p>
  
  <pre><code>describe("SN.ExitHistory", function() {
  
      var exitHistory;
  
      beforeEach(function() {
  
      SN.Utils = jasmine.createSpy("utils").andCallFake(function() {
          function readSNCookie(cookieName, key) {
              return "google.com";
          }
  
          function isUndefinedOrNull(param) {
              return (param == null) || (param === "null");
          }
  
          function createSNCookie(snCookieName, key, value, lifeTime) {
  
          }
  
          var me = {
              readSNCookie : readSNCookie,
              isUndefinedOrNull : isUndefinedOrNull,
              createSNCookie : createSNCookie
          };
          return me;
  
      })();
  
      exitHistory = SN.ExitHistory();
  
      });
  
      it("return last exit link", function() {
          expect(exitHistory.getLastExitLink()).toEqual("google.com");
      });
  
   });
  </code></pre>
  
  <p><code>exitHistory.getLastExitLink</code> internally use <code>SN.Utils</code>.</p>
  
  <p>After the test is done Jasmine does not remove the spy object utils. In next test suite also I can see the same utils present. Is there any way to reset the spy object after each test is done?</p>
  
  <p>Instead of creating spy, if I create a new object for utils, behavior is same. Then what is the difference between a spy and actual object in this scenario.</p>
  
  <p>Correct me if I am wrong. </p>