在spec/javascripts/backbone/albums_spec.js
的我的Rails应用中,我有以下规范......
describe('Albums collection', function() {
it("fetches a collection of three albums", function(done) {
loadFixtures('index.html');
var albumsLoaded = App.albumsLoaded;
App.albumsLoaded = function() {
albumsLoaded.apply(App, arguments);
expect(App.albums.models.length).toBe(3);
expect(typeof App.albums.models[0].attributes.title).toBe("string");
done();
};
App.init();
});
});
当我运行$ rake teaspoon files=spec/javascripts/backbone/albums_spec.js
时,我收到以下故障......
Error: You must pass a string or Handlebars AST to Handlebars.compile. You passed undefined
这是因为在assets/javascripts/backbone/views/albums.js
中,我正在尝试使用html文件中的元素编译Handlebars模板...在浏览器中工作正常等,但在茉莉花测试中,我想我需要创建一个html fixture来模拟那个html文件。所以,在spec/javascripts/fixtures/index.html
中,我已经粘贴了相同的HTML。我已经捆绑安装了teaspoon-jasmine
和jasmine-jquery-rails
宝石。不幸的是,我也失败了......
ReferenceError: Can't find variable: loadFixtures...
我无法加载我需要的html工具,以防止之前提到的失败,其中没有任何内容传递到Handlebars.compile
。我已经通过类似的SO帖子和github论坛搜索了这个问题,但到目前为止无济于事。对此有任何帮助将非常感激。