Jasmine 测试说模块未定义

Jasmine test says module is not defined

我正在试验以下代码...

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

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

上面的代码一切正常,但是当我将加法函数放入模块中并return它时,我得到“ReferenceError: TestModule is not defined.

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);
  });
});

如有任何建议,我们将不胜感激。

在您的代码中,TestModule 必须是一个函数才能 return 某些东西:

尝试

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/