Jasmine测试说模块没有定义

时间:2016-03-19 15:40:46

标签: javascript jasmine module-pattern

我正在尝试使用以下代码......

// testable_scripts.js
function addition(){
  return 1 + 1;
}

// spec.js
describe('Addition', function(){
  it('Adds two numbers together', function(){
    expect(addition()).toBe(2);
  });
});

使用上面的代码一切正常,但是当我将add函数放入模块并返回它时,我得到&#34; ReferenceError:未定义TestModule。&#34; < / p>

var TestModule = (function(){
  var addition = function(){
    return 1 + 1;
  };

  return {
    call_addition: function(){
      addition();
    }
  };
})();

// spec.js
describe('Addition', function(){
  it('Adds two numbers together', function(){
    expect(TestModule.call_addition()).toBe(2);
  });
});

感谢任何建议。

1 个答案:

答案 0 :(得分:1)

代码中的

TestModule必须是一个函数才能返回一些东西:

尝试

var TestModule = function(){
  var addition = function(){
    return 1 + 1;
  };
  return {
    call_addition: function(){
      return addition();
    }
  };
};
// spec.js
describe('Addition', function(){
  it('Adds two numbers together', function(){
    expect(TestModule().call_addition()).toBe(2);
  });
});

粘贴上面的代码 http://tryjasmine.com/