2012-04-18 9 views
2

emberベースのアプリケーションの開発環境と実稼働環境とテスト環境との間の名前の衝突を避けるために最善のことは何ですか?名前空間の衝突と初期化関数を避けるためのベストプラクティスEmber.jsのテスト

window.MyApp = Em.Application.create(); 

は生産に、私は私のテスト環境には、、Em.Application

window.MyApp = Em.Application.create(

    ready: function() { 
     // create some objects 
    } 
); 

の準備ができてプロパティを再定義することにより、いくつかの初期化関数を実行します。しかし:

通常、すべてのエンバー・アプリケーションは、名前空間を持っています私はオブジェクトを自分で作成するので、これらの初期化関数を実行したくありません。 MyAppの同じ定義を使用すると、オブジェクトを作成するとDOMに同じ要素が挿入されるため、衝突が発生します。では、アプリケーションをテストするときに、準備関数なしで同じネームスペースMyAppを使用するにはどうすればよいですか?私はジャスミンを使ってアプリケーションをテストします。

+0

@MikeAskiどういう意味ですか?面白いと思ったら、私はいつも答えに投票します! – jrabary

+0

@MikeAski申し訳ありませんが、私は比較的新しいstackoverflowです。次回はベストを尽くそうとします。 – jrabary

+0

問題ありません、よろしくお願いします。 –

答えて

2

Application#ready機能のコントローラ、作成、セットアップビューをインスタンス化するグルーコードを維持します。

は、例えばpangratz/ember.js-dashboardを取る:core.jsは、controllers.js一方、ちょうどNamespace definitiionを保持views.jsというように、私のクラスを定義します。コントローラをインスタンス化するグルーコードは、バインディングが定義されているビューと設定をmain.jsに作成します。 main.jsは、index.htmlの「実際の」アプリケーションでは他のものの間で使用されます。

基本的なアプリケーションレイアウトにはinterline/ember-skeletonが使用されていますが、それ自体がテスト用にQUnitを使用しています。しかしこれはジャスミンにも当てはまるはずです。

関連する問題