jasmine-gem无法正确加载jquery

问题描述 投票:0回答:1

我的茉莉花规格运行正常。但是当我必须使用像$这样的jquery语法时,我收到以下错误:

ReferenceError: Can't find variable: $ in http://localhost:57132/__spec__/

所以,我添加了gem "jasmine-jquery-rails"

bundle install之后仍然出现同样的错误。

现在我决定在jasmine.yml文件中添加jasmine-jquery,但仍然是同样的错误。

然后我决定手动下载jasmine-jquery.js并将其放在app/assets/javascripts上并将其添加到jasmine.yml。然后我得到所有规格的错误。

TypeError: Right-hand side of 'instanceof' is not an object

TypeError: $ is not a function

我不明白我在做错了什么。

我认为我们加载文件的顺序是这里的问题。但是无法弄明白这一点。

jquery ruby-on-rails jasmine
1个回答
1
投票

我昨天刚开始使用茉莉花宝石,但经过一段时间的战斗后,我让它为我工作。

你需要的是让JQuery注册$ handler。只是将jQuery库添加到src_files中的yasmine.yml似乎没有帮助。

DID对我有用的是在jasmine.yml中包含assets/application.js作为src_files下的第一个条目:

src_files:
  - assets/application.js
  - '../vendor/javascripts/*.js'
  - 'javascript/**/*.js'

(我在javascript/文件夹中获取了我的实际源文件,并将..vender/javascripts/文件夹用于第三方库,这对您来说会有所不同。)

确保assets/javascripts/application.js中需要JQuery,如下所示:

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file. JavaScript code in this file should be added after the last require_* statement.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .

这几乎是当你通过assets/javascripts/application.js命令行工具生成一个新应用程序时你的rails new应该是什么样子。

jasmine-jquery-rails gem对您的问题没有帮助,因为它增加了额外的测试功能,而不是基本的JQuery支持。

获得Jasmine成功的成功!

© www.soinside.com 2019 - 2024. All rights reserved.