繁体   English   中英

在Javascript中重置单元测试的闭包变量

[英]Reset closure variables for unit testing in Javascript

我在Javascript中有以下模块

var module = (function (){
  var cache = {};
  return {
    postMessage: function (msg){
      if(!cache[msg]){
        cache[msg] = true;
        console.log(msg);
      }
    }
  }
}());

当我在Jasmine中为这个模块编写单元测试时,我希望在每个测试开始时都有一个带有空缓存变量的干净模块。 我无法找到解决此问题的解决方案,除了清除缓存且公开可用的辅助函数。

有没有办法清除单元测试的闭包变量? 我不需要生产代码的解决方案,因为如果我想在生产中清除,我会有这样的帮助函数。

在您的情况下无法重置缓存。 你在这里有一个具有私有状态的Singleton,所以你输了,因为你无法重置状态,你不能在你的测试中创建一个新的module实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM