3

最近Rails 4.1にアップグレードしました

単独で正常に動作する宝石「jasmine-rails」を使用しています。

また、gem 'jasmine-jquery-rails' を使用してフィクスチャをロードしようとしていますが、ロードできません (jasmine は単に jasmine-jquery 関数を認識しません)。jasmine yml ファイルに「jasmine-jquery.js」を追加しました。

また、ファイルを app/javascripts/assets フォルダーに直接追加し、jasmine.yml ファイルを次のように変更してみました

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

しかし、それでも jasmine-jquery はロードされません。

何かご意見は?

4

3 に答える 3

1

必要なものは次のとおりです。

jasmine.yml ファイルには、次のものがあれば十分です。

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

次に、spec ファイルに、テストに必要なファイルを含める必要があります (これらのファイルはアセット パイプラインにあるため、含める必要があるだけです。それが jasmine-rails gem の目的です)。

たぶん、この例が役立つかもしれません:

//= 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 です。

jasmine-jquery はその機能を使用するため (GitHub のドキュメントに記載されているように) jquery が必要であり、マッチャー「toBeChecked()」を使用するため jasmine-jquery が必要です。

このように考えてください。Rails アセット ファイルはすべてアセット パイプラインにあるため、テスト ファイルには、テストに必要なものを含めるだけで済みます。

ハッピーコーディング

于 2015-04-17T03:27:22.923 に答える
0

@Elyasin は、jasmine-jquery各 js 仕様ファイルで必要な場合を除いて、実用的なソリューションを提供しました。に追加//= require jasmine-jqueryapp/assets/javascripts/application.jsます。その後、他の場所で再度要求する必要はありません。それは私にとってはうまくいきます。

于 2017-08-13T00:51:48.560 に答える