現在、RubyonRailsアプリケーションで実行されているAngularJSのJasmineテストがあります。それで、VCRを使用して偽のデータを含むAPIJSONファイルを生成します。
それらのファイルをJavaScriptの単体テストに埋め込むことは可能でしょうか?
- これらのファイルに対してAjax呼び出しを行わないことをお勧めします(パフォーマンス)
assets
本番コードでは除外する必要があるため、入れないようにしています。
現在の構造は次のようになります。
spec / controllerSpec.js
scope.user.handleUserLoaded({
"is_logged_in": true,
"preferred_name": "Christian"
});
expect(scope.user.isAuthenticated()).toBeTruthy();
フィクスチャ/fake_data/user.json
{
"is_logged_in": true,
"preferred_name": "Christian"
}
この複製を行う代わりに、JavaScriptに何らかのインクルードを含めることをお勧めします。
scope.user.handleUserLoaded(<% include "fixtures/fake_data/user.json" %>);
expect(scope.user.isAuthenticated()).toBeTruthy();
これを行うための最良の方法は何でしょうか?
私たちは間違いなくファイルを移動したり、ファイルを使用.js.erb
したり、別のアプローチを試したりすることができます。