2011-07-07 6 views
8

私のサイトの別々の部分には、別々のJavascriptファイルセットがあります。これらはすべて一緒になって互いに干渉し合います。 Jasmineですべてをテストするには、スイートごとに別々の資産セットを定義する必要があるようです。これは現在可能ですか?あれば、どうですか?ジャスミン:Rails用に別々のソースファイルセットを定義しますか?

+0

どのように相互に干渉するのか説明できますか? Javascriptを慎重に名前空間に配置し、定義する前に名前空間内の各モジュールがすでに定義されているかどうかを確認する場合は、競合を避ける必要があります。おそらく、紛争の例を挙げると、紛争を避けるために物を再梱包する方法を示すことができます。 Rails 3.1のアセットパイプラインは、(デフォルトでは、とにかく)1つのapplication.jsで定義されたすべてのjavascriptを持つことができるようになります(つまり、すべてのモジュールは1つのファイルにロールアップされます)。 – mwolfetech

+1

私は自分のサイトの公開部分と管理部分のJSファイルを設定しました。どちらの関数も同じ名前のグローバル変数を持っていました。私がやったことは、(1)共通の動作を共有JSファイルに含めること、(2)(クラスと継承を実装する)(http://ejohn.org/blog/simple-javascript-inheritance/)行動の変種。ですから、基本的にはJSファイル全体をまとめて整理し、同時に共存させることができます。しかし、私はまだファイルのサブセットだけをテストすることで価値が見えます。 –

答えて

2

あなたの提案するように、JavaScriptを別の名前空間に分割することを検討してください。 javascriptを複数のファイルに分割することを簡単にする1つのすばらしい方法は、closureとjavascriptのいくつかのきちんとしたプロパティを使用して、必要なコードをただちに実行し、それを含むmodule patternを使用することです。

+0

2つのjsファイルが同じ名前の関数を定義している場合はどうなりますか? Webアプリケーションでは、両方がロードされず、ジャスミンで衝突します。 – apneadiving

+1

謝罪;以前はJasmineを使用していませんが、一般的に上記の手順はjavascriptファイルを分割するのに適しています。同じ名前の関数が2つある場合は、おそらくそれぞれの名前空間/クラスに属しているはずです。 – NT3RP

関連する問題