0

我刚刚开始在 Maven 中使用 Jasmine。我有 Jasmine 工作,但由于某种原因它找不到我的 Backbone 模型。我的 JavaScript src 目录指向包含我的 Backbone.js 模型的文件夹。在我的 JavaScript 测试目录中,我有一个简单的测试:

describe('ToDo Model',function()
{
    it('Test',function() {
        var todo = new ToDo();
    });
});

但我不断得到未定义的 ToDo。我是否必须在我的主干模型文件或任何东西中编写我的测试?谢谢。

4

2 回答 2

2

ToDo 也必须在全局命名空间中。尝试在您的 Chrome/Firefox 控制台中输入以下内容:

窗口.ToDo

如果它返回未定义,那就是问题所在!

于 2012-07-26T18:43:06.730 回答
1

为您的应用程序定义一个全局命名空间通常是一个好习惯,例如:

window.Application = {
  Models: {},
  Views: {},
  Collections: {}
}

// etc.

然后,我喜欢这样定义模型:

(function (Models) {
  Models.ToDo = Backbone.Models.extend({
    // etc...
  });
})(Application.Models);

这里的命名空间不是必需的,但Models我认为在文件顶部看到是一个很好的视觉提示。

于 2012-07-26T18:49:33.657 回答