javascript - 如何正确使用 RequireJS?

标签 javascript testing requirejs jasmine

我需要测试一个 JavaScript 项目。描述了几个模块,但是当我尝试加载它们时出现了问题。

define([
  'core/BaseModel'
],

function (BaseModel) {
  var MessageModel = BaseModel.extend({
    defaults: {
      messageType: "Advertisment",
      receiver: "me",
      title: "Title",
      heading_1: "Heading1",
      heading_2: "Heading2"
    },

    url: function () {
      var base = this.apipath + '/companies/';
      if (this.isNew()) return base;
      return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + this.id;
    }
  });

  return MessageModel;
});

要加载模块,我这样做:

var message;
beforeAll(function(done){
    require(['../../../public/js/app/models/Message'], function(Message){
        message = Message;
        done();
    });
});

现在消息不是未定义的,但是当我测试是否定义了 message.defaults 或 message.url 时,这失败了。哪里出了问题?

最佳答案

鉴于 ../../../public/js/app/models/Message 对应于 MessageModel,什么你要做的是:

var Message = require('../../../public/js/app/models/Message');

并创建一个新实例:var m = new Message();

希望这对您有所帮助。

关于javascript - 如何正确使用 RequireJS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29820214/

相关文章:

javascript - 如何将 Requirejs-handlebars 与 Grunt-contrib-requirejs 优化器一起使用?

javascript - Jsjws JSON Web 签名和 token

asp.net-mvc-4 - 关于 mvc、require.js 和 Angular 的童话。以后还有幸福吗?

javascript - jQuery 从动态生成的字段中删除特定字段

ruby-on-rails - 测试函数包含 API 请求

testing - 使用 Verilog VPI 在模拟器中提前时间

java - 功能测试 (Jellytools) 不在 netbeans 平台上启动

javascript - 通过 jQuery AJAX 上传文件后 HttpPostedFile.ContentLength 始终为 -2

javascript - 使用外部脚本动态添加的 javascript 不会被执行

Javascript style.display 带走 <ul> 子弹