2

ember ベースのアプリケーションの開発/運用環境とテスト環境の間で名前の衝突を避けるために行う最善の方法は何ですか。

通常、すべての Ember アプリケーションには名前空間があります。

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

本番環境では、Em.Application の ready プロパティを再定義して、いくつかの初期化関数を実行します。

window.MyApp = Em.Application.create(

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

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

4

1 に答える 1

2

コントローラーをインスタンス化し、関数からビューを作成およびセットアップするグルー コードを保持しApplication#readyます。

例としてpangratz / ember.js-dashboardを取ります。コントローラーをインスタンス化し、ビューを作成し、バインドをセットアップするグルー コードは、 で定義されています。は、 の「実際の」アプリケーションで使用されます。core.jsNamespacecontrollers.jsviews.jsmain.jsmain.jsindex.html

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

于 2012-04-18T09:25:26.273 に答える