рельсы 4.1 jasmine-jquery не загружаются

Я недавно обновился до Rails 4.1

Я использую драгоценный камень «жасмин-рельсы», который сам по себе работает нормально.

Я также пытаюсь использовать драгоценный камень jasmine-jquery-rails для загрузки приспособлений, но не могу его загрузить (жасмин просто не распознает функции jasmine-jquery). Я добавил «jasmine-jquery.js» в свой yml-файл jasmine.

Я также попытался добавить файл прямо в папку app / javascripts / assets и изменить файл jasmine.yml на

src_dir: "app/assets/javascripts"
src_files:
  - "application.{js.coffee,js,coffee}"
  - "jasmine-jquery.js"

но он по-прежнему не загружает jasmine-jquery.

Есть предположения?


person Edward Taylor    schedule 10.04.2014    source источник


Ответы (3)


Все, что вам нужно, это следующее.

В файле jasmine.yml достаточно иметь:

spec_files:
  - "**/*[Ss]pec.{js.coffee,js,coffee}"

Затем в файл спецификации вам нужно включить файлы, необходимые для тестирования (эти файлы находятся в конвейере ресурсов, поэтому вам просто нужно включить его. Для этого нужны драгоценные камни jasmine-rails).

Возможно, этот пример может помочь:

//= require jquery
//= require jasmine-jquery
describe("Jasmine jQuery Test", function() {
  it("works out of the box", function() {
    expect($('<input type="checkbox" checked="checked"/>')).toBeChecked();
  });
});

Обратите внимание, что вам потребуются файлы, используемые для тестирования. В этом случае jquery и jasmine-jquery.

jquery требуется, потому что jasmine-jquery использует свои функции (как указано в документации на GitHub), а jasmine-jquery требуется, потому что мы используем сопоставитель «toBeChecked ()».

Подумайте об этом так: все ваши файлы ресурсов Rails находятся в конвейере ресурсов, поэтому в ваши тестовые файлы вам просто нужно включить то, что вам нужно для тестирования.

Удачного кодирования

person Ely    schedule 17.04.2015
comment
но что, если я не хочу записывать это в каждый файл спецификации? - person faron; 17.12.2015

Попробуйте добавить:

#= require jquery
#= require support/jasmine-jquery-1.7.0

в ваш spec/javascripts/spec_helper.coffee файл.

HTH, Джарра

person suhrawardi    schedule 24.07.2014

@Elyasin дал рабочее решение, за исключением того, что вам нужно требовать jasmine-jquery в каждом из ваших файлов спецификации js. Добавьте //= require jasmine-jquery в app/assets/javascripts/application.js. Тогда вам больше не придется требовать его где-либо еще. У меня это хорошо работает.

person Xiaohong Deng    schedule 13.08.2017