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

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

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


上面的代码一切正常,但是当我将加法函数放入模块中并返回时,出现“ ReferenceError:TestModule未定义”。

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必须是一个函数才能返回某些内容:

尝试

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/

关于javascript - Jasmine 测试说模块未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36103683/

10-13 08:54